]> arthur.barton.de Git - netatalk.git/blobdiff - etc/afpd/afp_options.c
remove '\n' char in log messages.
[netatalk.git] / etc / afpd / afp_options.c
index e95cf9087c373750674150d9268d73a3fcf3ff78..cad72ee262cb6da4b7aaa6da316c4f542988e3b7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: afp_options.c,v 1.30.2.2.2.1 2003-09-09 16:42:19 didg Exp $
+ * $Id: afp_options.c,v 1.30.2.2.2.7 2004-05-12 21:21:48 didg Exp $
  *
  * Copyright (c) 1997 Adrian Sun (asun@zoology.washington.edu)
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
@@ -62,8 +62,8 @@ char *strchr (), *strrchr ();
 #endif /* MIN */
 
 /* FIXME CNID */
-char             *Cnid_srv;
-int              Cnid_port;
+char             Cnid_srv[MAXHOSTNAMELEN + 1] = "localhost";
+int              Cnid_port = 4700;
 
 #define OPTIONS "dn:f:s:uc:g:P:ptDS:TL:F:U:Ivm:"
 #define LENGTH 512
@@ -133,8 +133,6 @@ void afp_options_free(struct afp_options *opt,
         free(opt->uampath);
     if (opt->uamlist && (opt->uamlist != save->uamlist))
         free(opt->uamlist);
-    if (opt->nlspath && (opt->nlspath != save->nlspath))
-        free(opt->nlspath);
     if (opt->passwdfile && (opt->passwdfile != save->passwdfile))
         free(opt->passwdfile);
     if (opt->signature && (opt->signature != save->signature))
@@ -160,7 +158,6 @@ void afp_options_init(struct afp_options *options)
     options->defaultvol.name = _PATH_AFPDDEFVOL;
     options->systemvol.name = _PATH_AFPDSYSVOL;
     options->configfile = _PATH_AFPDCONF;
-    options->nlspath = _PATH_AFPDNLSPATH;
     options->uampath = _PATH_AFPDUAMPATH;
     options->uamlist = "uams_clrtxt.so,uams_dhx.so";
     options->guest = "nobody";
@@ -433,26 +430,26 @@ int afp_options_parseline(char *buf, struct afp_options *options)
         options->uampath = opt;
     if ((c = getoption(buf, "-uamlist")) && (opt = strdup(c)))
         options->uamlist = opt;
-    if ((c = getoption(buf, "-nlspath")) && (opt = strdup(c)))
-        options->nlspath = opt;
 
     if ((c = getoption(buf, "-ipaddr"))) {
         struct in_addr inaddr;
         if (inet_aton(c, &inaddr) && (opt = strdup(c))) {
             if (!gethostbyaddr((const char *) &inaddr, sizeof(inaddr), AF_INET))
-                LOG(log_info, logtype_afpd, "WARNING: can't find %s\n", opt);
+                LOG(log_info, logtype_afpd, "WARNING: can't find %s", opt);
             options->ipaddr = opt;
         }
     }
 
-    /* FIXME CNID */
+    /* FIXME CNID Cnid_srv is a server attribute */
     if ((c = getoption(buf, "-cnidserver"))) {
         char *p;
-        
-        Cnid_srv = strdup(c);
-        p = strchr(Cnid_srv, ':');
-        *p = 0;
-        Cnid_port = atoi(p +1);
+       int len;        
+        p = strchr(c, ':');
+       if (p != NULL && (len = p - c) <= MAXHOSTNAMELEN) {
+           memcpy(Cnid_srv, c, len);
+           Cnid_srv[len] = 0;
+           Cnid_port = atoi(p +1);
+       }
     }
 
     if ((c = getoption(buf, "-port")))
@@ -473,23 +470,31 @@ int afp_options_parseline(char *buf, struct afp_options *options)
             if ((opt = strdup(c)))
                 options->fqdn = opt;
         }
+       else {
+            LOG(log_error, logtype_afpd, "error parsing -fqdn, gethostbyname failed for: %s", c);
+       }
     }
 
     if ((c = getoption(buf, "-unixcodepage"))) {
-       options->unixcodepage = c;
-       if ( 0 == ( options->unixcharset = add_charset(options->unixcodepage)) ) {
-               options->unixcodepage= "LOCALE";
-               options->unixcharset = CH_UNIX;
+       if ((charset_t)-1  == ( options->unixcharset = add_charset(c)) ) {
+            options->unixcharset = CH_UNIX;
+            LOG(log_warning, logtype_afpd, "setting Unix codepage to '%s' failed", c);
        }
+       else {
+            if ((opt = strdup(c)))
+                options->unixcodepage = opt;
+       }
     }
        
     if ((c = getoption(buf, "-maccodepage"))) {
-       options->maccodepage = c;
-       if ( 0 == ( options->maccharset = add_charset(options->maccodepage)) ) {
-               options->maccodepage= "Mac_Roman";
-               options->maccharset = CH_MAC;
+       if ((charset_t)-1 == ( options->maccharset = add_charset(c)) ) {
+            options->maccharset = CH_MAC;
+            LOG(log_warning, logtype_afpd, "setting Mac codepage to '%s' failed", c);
        }
-       LOG(log_debug, logtype_afpd, "Setting Mac Codepage to '%s'", options->maccodepage);
+       else {
+            if ((opt = strdup(c)))
+                options->maccodepage = opt;
+       }
     }
 
     return 1;