]> code.citadel.org Git - citadel.git/blobdiff - citadel/serv_vcard.c
* Initialize more variables during declaration,
[citadel.git] / citadel / serv_vcard.c
index cb34e55b0ac4221f437c0d204d1f13e706602a79..9f67eea336af7a1cdcd9cc7501699640d49d12c0 100644 (file)
@@ -189,7 +189,7 @@ void cmd_igab(char *argbuf) {
        CtdlDirectoryInit();
 
        /* We want *all* vCards in this room */
-       CtdlForEachMessage(MSGS_ALL, 0, "text/x-vcard",
+       CtdlForEachMessage(MSGS_ALL, 0, NULL, "text/x-vcard",
                NULL, vcard_add_to_directory, NULL);
 
        getroom(&CC->room, hold_rm);    /* return to saved room */
@@ -322,8 +322,7 @@ int vcard_upload_beforesave(struct CtdlMessage *msg) {
                                 * want to make sure there is absolutely only one
                                 * vCard in the user's config room at all times.
                                 */
-                               CtdlDeleteMessages(CC->room.QRname,
-                                               NULL, 0, "text/x-vcard", 1);
+                               CtdlDeleteMessages(CC->room.QRname, NULL, 0, "text/x-vcard");
 
                                /* Make the author of the message the name of the user.
                                 */
@@ -508,7 +507,7 @@ void vcard_gu_backend(long supplied_msgnum, void *userdata) {
 struct vCard *vcard_get_user(struct ctdluser *u) {
        char hold_rm[ROOMNAMELEN];
        char config_rm[ROOMNAMELEN];
-       struct CtdlMessage *msg;
+       struct CtdlMessage *msg = NULL;
        struct vCard *v;
        long VCmsgnum;
 
@@ -522,7 +521,7 @@ struct vCard *vcard_get_user(struct ctdluser *u) {
 
        /* We want the last (and probably only) vcard in this room */
        VCmsgnum = (-1);
-       CtdlForEachMessage(MSGS_LAST, 1, "text/x-vcard",
+       CtdlForEachMessage(MSGS_LAST, 1, NULL, "text/x-vcard",
                NULL, vcard_gu_backend, (void *)&VCmsgnum );
        getroom(&CC->room, hold_rm);    /* return to saved room */
 
@@ -880,7 +879,6 @@ void cmd_qdir(char *argbuf) {
  * Query Directory, in fact an alias to match postfix tcp auth.
  */
 void check_get(void) {
-       char citadel_addr[256];
        char internet_addr[256];
 
        char cmdbuf[SIZ];
@@ -897,21 +895,30 @@ void check_get(void) {
 
        if (strcasecmp(cmdbuf, "GET "));
        {
-
+               struct recptypes *rcpt;
                char *argbuf = &cmdbuf[4];
-               //// if (CtdlAccessCheck(ac_logged_in)) return;
                
                extract_token(internet_addr, argbuf, 0, '|', sizeof internet_addr);
-               
-               if (CtdlDirectoryLookup(citadel_addr, internet_addr, sizeof citadel_addr) != 0) {
-                       cprintf("500 %s was not found.\r\n",
-                               internet_addr);
+               rcpt = validate_recipients(internet_addr);
+               if ((rcpt != NULL)&&
+                       (
+                        (*rcpt->recp_local != '\0')||
+                        (*rcpt->recp_room != '\0')||
+                        (*rcpt->recp_ignet != '\0')))
+               {
+
+                       cprintf("200 OK %s\n", internet_addr);
+                       lprintf(CTDL_INFO, "sending 200 OK for the room %s\n", rcpt->display_recp);
+               }
+               else 
+               {
+                       cprintf("500 REJECT noone here by that name.\n");
                        
+                       lprintf(CTDL_INFO, "sending 500 REJECT noone here by that name: %s\n", internet_addr);
                }
-               
-               else cprintf("200 OK %s\r\n", internet_addr);//,citadel_addr);
+               if (rcpt != NULL) free (rcpt);
        }
-       CC->kill_me = 1;
+///    CC->kill_me = 1;
 }
 
 void check_get_greeting(void) {
@@ -954,7 +961,7 @@ void vcard_create_room(void)
  * When a user logs in...
  */
 void vcard_session_login_hook(void) {
-       struct vCard *v;
+       struct vCard *v = NULL;
 
        v = vcard_get_user(&CC->user);
        extract_primary_inet_email(CC->cs_inet_email,
@@ -1004,7 +1011,7 @@ struct vCard *vcard_new_from_rfc822_addr(char *addr) {
  */
 void strip_addresses_already_have(long msgnum, void *userdata) {
        char *collected_addresses;
-       struct CtdlMessage *msg;
+       struct CtdlMessage *msg = NULL;
        struct vCard *v;
        char *value = NULL;
        int i, j;
@@ -1051,7 +1058,7 @@ void store_this_ha(struct addresses_to_be_filed *aptr) {
 
        /* First remove any addresses we already have in the address book */
        usergoto(aptr->roomname, 0, 0, NULL, NULL);
-       CtdlForEachMessage(MSGS_ALL, 0, "text/x-vcard", NULL,
+       CtdlForEachMessage(MSGS_ALL, 0, NULL, "text/x-vcard", NULL,
                strip_addresses_already_have, aptr->collected_addresses);
 
        if (strlen(aptr->collected_addresses) > 0)