]> arthur.barton.de Git - netatalk.git/commitdiff
Merge sf.net
authorFrank Lahm <franklahm@googlemail.com>
Wed, 1 Jun 2011 11:57:44 +0000 (13:57 +0200)
committerFrank Lahm <franklahm@googlemail.com>
Wed, 1 Jun 2011 11:57:44 +0000 (13:57 +0200)
NEWS
config/afpd.conf.tmpl
etc/afpd/afp_avahi.c
etc/afpd/afp_avahi.h
etc/afpd/afp_options.c
include/atalk/globals.h
man/man1/afppasswd.1
man/man5/afpd.conf.5.tmpl

diff --git a/NEWS b/NEWS
index fa81acd9da9ba6d08a0452f745bc4a4ba5907b13..2a54c2b9dad44dd8d957bd9093cf1c64142abda1 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,7 @@ Changes in 2.2
 * NEW: afpd: new volume option "nonetids"
 * NEW: afpd: ACL access check caching
 * NEW: afpd: FCE event notifications
+* NEW: afpd: new option "-mimicmodel" for specifying Bonjour model registration
 * UPD: Support for Berkeley DB 5.1
 * UPD: case-conversion is based on Unicode 6.0.0
 * UPD: cnid_metad: allow up to 4096 volumes
index 0994a116d4821f1f2475fac5ccd889e1451e20db..04ba0ca6b71290a25bb27482e536c647637541e5 100644 (file)
 #                               in dotted-decimal format for IPv4 or in
 #                               hexadecimal format for IPv6.
 #
+#   Avahi (Bonjour) related options:
+#     -mimicmodel <model>
+#                               Specifies the icon model that appears on
+#                               clients. Defaults to off. Examples: RackMac
+#                               (same as Xserve), PowerBook, PowerMac, Macmini,
+#                               iMac, MacBook, MacBookPro, MacBookAir, MacPro,
+#                               AppleTV1,1, AirPort
+#
 
 
 #
index a06c7be4237209e35faa9a4bee6f16da6ff01d00..dbd0cf2e75fd266f8e328b6df485ad4986a7ff29 100644 (file)
@@ -48,6 +48,7 @@ static void register_stuff(void) {
     DSI *dsi;
     char name[MAXINSTANCENAMELEN+1];
     AvahiStringList *strlist = NULL;
+    AvahiStringList *strlist2 = NULL;
     char tmpname[256];
 
     assert(ctx->client);
@@ -143,6 +144,25 @@ static void register_stuff(void) {
                     avahi_strerror(avahi_client_errno(ctx->client)));
                 goto fail;
             }  /* if */
+
+            if (config->obj.options.mimicmodel) {
+                strlist2 = avahi_string_list_add_printf(strlist2, "model=%s", config->obj.options.mimicmodel);
+                if (avahi_entry_group_add_service_strlst(ctx->group,
+                                                         AVAHI_IF_UNSPEC,
+                                                         AVAHI_PROTO_UNSPEC,
+                                                         0,
+                                                         dsi->bonjourname,
+                                                         DEV_INFO_SERVICE_TYPE,
+                                                         NULL,
+                                                         NULL,
+                                                         0,
+                                                         strlist2) < 0) {
+                    LOG(log_error, logtype_afpd, "Failed to add service: %s",
+                        avahi_strerror(avahi_client_errno(ctx->client)));
+                    goto fail;
+                }
+            } /* if (config->obj.options.mimicmodel) */
+
         }      /* for config*/
 
         if (avahi_entry_group_commit(ctx->group) < 0) {
index 2c6ca706d0e5176e1bf8d82eb12b2154d02d9480..c0216fef4723f7d0b722c2a1d7b89bc7634105fb 100644 (file)
@@ -26,6 +26,7 @@
 
 #define AFP_DNS_SERVICE_TYPE "_afpovertcp._tcp"
 #define ADISK_SERVICE_TYPE "_adisk._tcp"
+#define DEV_INFO_SERVICE_TYPE "_device-info._tcp"
 
 #define MAXINSTANCENAMELEN 63
 
index 22cb2d3389be6e008439be6a3649137e3c9167ff..b79bc8d1f443329bb220f5dbbf408e60e1e390b2 100644 (file)
@@ -140,6 +140,8 @@ void afp_options_free(struct afp_options *opt,
        free(opt->ntseparator);
     if (opt->logconfig && (opt->logconfig != save->logconfig))
        free(opt->logconfig);
+       if (opt->mimicmodel && (opt->mimicmodel != save->mimicmodel))
+       free(opt->mimicmodel);
 }
 
 /* initialize options */
@@ -190,6 +192,7 @@ void afp_options_init(struct afp_options *options)
     options->tcp_sndbuf = 0;    /* 0 means don't change OS default */
     options->tcp_rcvbuf = 0;    /* 0 means don't change OS default */
     options->dsireadbuf = 12;
+       options->mimicmodel = NULL;
 }
 
 /* parse an afpd.conf line. i'm doing it this way because it's
@@ -495,6 +498,9 @@ int afp_options_parseline(char *buf, struct afp_options *options)
                fce_set_events(c);
        }
 
+    if ((c = getoption(buf, "-mimicmodel")) && (opt = strdup(c)))
+       options->mimicmodel = opt;
+
     return 1;
 }
 
index 02dcf8b56b58abd1dd00d02dbe44452a2c19a3e4..cca15f575ace63d295d9b7755584f7cef52845a5 100644 (file)
@@ -96,6 +96,8 @@ struct afp_options {
     /* default value for winbind authentication */
     char *ntdomain, *ntseparator;
     char *logconfig;
+
+    char *mimicmodel;
 };
 
 #define AFPOBJ_TMPSIZ (MAXPATHLEN)
index 8d72f85c5477fdae3cabb6584fd0c55ebd59077a..8e9e5dfdd6f7362074d9ac3ee81cdfc7097aca02 100644 (file)
@@ -2,12 +2,12 @@
 .\"     Title: afppasswd
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
-.\"      Date: 22 Aug 2004
+.\"      Date: 31 May 2011
 .\"    Manual: Netatalk 2.2
 .\"    Source: Netatalk 2.2
 .\"  Language: English
 .\"
-.TH "AFPPASSWD" "1" "22 Aug 2004" "Netatalk 2.2" "Netatalk 2.2"
+.TH "AFPPASSWD" "1" "31 May 2011" "Netatalk 2.2" "Netatalk 2.2"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -43,7 +43,7 @@ can either be called by root with parameters, or can be called by local system u
 .ps -1
 .br
 .PP
-With this utility you can only change the passwords used by two specific UAMs\&. As they provide only weak password encryption, the use of the "Randnum exchange" and "2\-Way Randnum exchange" UAMs is deprecated unless one has to support very old AFP clients, that can not deal with the more secure "DHCAST128" UAM instead\&. Please compare with the
+With this utility you can only change the passwords used by two specific UAMs\&. As they provide only weak password encryption, the use of the "Randnum exchange" and "2\-Way Randnum exchange" UAMs is deprecated unless one has to support very old AFP clients, that can not deal with the more secure "DHCAST128" and "DHX2" UAM instead\&. Please compare with the
 Authentication chapter
 inside Netatalk\'s documentation\&.
 .sp .5v
index a6c29e61162b03f8f96e6e223df5b028e26ccf63..eb68d49a67ed34e243b02a2ec61f7b5198a02e16 100644 (file)
@@ -422,6 +422,11 @@ Sets a message to be displayed when clients logon to the server\&. The message s
 and should be quoted\&. Extended characters are allowed\&.
 .RE
 .PP
+\-mimicmodel \fImodel\fR
+.RS 4
+Specifies the icon model that appears on clients\&. Defaults to off\&. Examples: RackMac (same as Xserve), PowerBook, PowerMac, Macmini, iMac, MacBook, MacBookPro, MacBookAir, MacPro, AppleTV1,1, AirPort\&.
+.RE
+.PP
 \-nodebug
 .RS 4
 Disables debugging\&.