Frank Lahm | 5 Apr 2011 11:55

Netatalk 2.2-beta4 is available

Netatalk 2.2-beta4
==================
The Netatalk development team is proud to announce version 2.2-beta4 of
the Netatalk File Sharing suite. This is an unstable version, published
for the sole purpose of receiving wider testing. Do not run this on
production systems.

Netatalk is a freely-available Open Source AFP fileserver. It also
provides a kernel level implementation of the AppleTalk Protocol Suite.
A *NIX/*BSD system running Netatalk is capable of serving many Macintosh
clients simultaneously as an AppleShare file server (AFP), AppleTalk
router, *NIX/*BSD print server, and for accessing AppleTalk printers via
Printer Access Protocol (PAP).
Included are a number of minor printing and debugging utilities.

The suite contains:

* afpd - a file server that implements the Apple Filing Protocol, allowing
  clients running MacOS to access Unix file servers
* atalkd - an implementation of the AppleTalk protocol
* papd - a print server that enables Macintosh computers to access printers
  connected to Unix servers
* megatron - a tool to convert files in Macintosh specific formats like
  BinHex, AppleSingle, or MacBinary into files readable by Unix computers
* various supporting programs and utilities

Summary of hot stuff and enhancements since 2.1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* AFP 3.3 support
(Continue reading)

Scott Sipe | 11 Apr 2011 23:02
Favicon

utmp not working properly?

Hello, I'm running 2.1.5 on FreeBSD 8.2, and as far as I can tell utmp logging does not work correctly.

1) In my log files I get a lot of these messages:

afpd: pam_sm_close_session(): no utmp record for afpd

2) When looking at the output of 'last' it never shows more than one person logged in concurrently via afpd.
Each time somebody new logs in via afpd, 'last' shows the last person to have logged on before the new user as
having now logged off. Here's an excerpt from my last output:

sco2          afpd     10.1.2.28        Mon Apr 11 16:51 - 16:53  (00:01)
tim1          afpd     10.8.0.18        Mon Apr 11 16:05 - 16:51  (00:46)
mar1          afpd     10.1.2.118       Mon Apr 11 15:17 - 16:05  (00:48)
pro1          afpd     10.1.2.105       Mon Apr 11 12:35 - 15:17  (02:41)
kp2           afpd     10.1.2.72        Mon Apr 11 12:32 - 12:35  (00:03)
mar1          afpd     10.1.2.37        Mon Apr 11 12:01 - 12:32  (00:30)

So it looks like the previous session ends when a new user logs in, even though the afpd connection is still
going fine. We don't have an usability problems that I know of, it's been very solid.

Thanks,
Scott
--
Scott Sipe, editor
Carolina Academic Press
(919) 489-7486 x129
http://www.cap-press.com/

------------------------------------------------------------------------------
Forrester Wave Report - Recovery time is now measured in hours and minutes
(Continue reading)

Celso Junior | 17 Apr 2011 18:48
Picon

EventDriven Log

Hi guys!
First of all, congratulations for netatalk!
Such a brilliant,stable and usefull system to share files with Macos clients!

I was working on a log-interpretator for netatalk events, such as file creation, file rename an so on..
After trying using file-loggin and playing with combinations of log levels to the afpdaemon, i decided to "hack" some code and first tryied to create a custom log level, since I saw  the unix.c file does not log file events but when some error occurs.

but i think i was not sucessfull...
I created the log level at logger.h and put the LOG command inside unix.c where i think it is necessary but (even building with --with-logfile option) my custom log level was not created.

Do you think is there another workarround?
Do you think it values the effort trying to create a simplier FileEvent driven loglevel?

The matter is, I created a core software for a DAM that must watch what happens in the file system so it can take the correct decisions, and I used iwatch and inotify to do the job but I get a lot of errors and inconsistences for some years with that (lol) So i decided it would be better it the "change-agent" do this notifications instead.
If it would be usefull to netatalk and you could tell me the right way to do it, I'll be very pleased in contribuite and join the project with that.


My very best Regards!

Celso Junior
Brazil



--
Conheça O Servidor e Outras Histórias!
http://www.editoramultifoco.com.br/literatura-loja-detalhe.php?idLivro=303&idProduto=308

Trailler no Youtube
http://www.youtube.com/watch?v=ajXQapgj1eM

------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
_______________________________________________
Netatalk-devel mailing list
Netatalk-devel <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/netatalk-devel
HAT | 21 Apr 2011 16:24
Picon
Gravatar

strcasecmp_w()

I am implementing case-conversion that supports surrogate pair.
In this work, I have the doubt in the original source.

libatalk/unicode/util_unistr.c:

> /*******************************************************************
> case insensitive string comparison
> ********************************************************************/
> int strcasecmp_w(const ucs2_t *a, const ucs2_t *b)
> {
>      while (*b&&  toupper_w(*a) == toupper_w(*b)) { a++; b++; }
>      return (tolower_w(*a) - tolower_w(*b));
> }

Why does it convert character to lower case at the end only?

--

-- 
HAT

------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
Frank Lahm | 21 Apr 2011 16:36

Re: strcasecmp_w()

Hi,

2011/4/21 HAT <hat <at> fa2.so-net.ne.jp>:
> I am implementing case-conversion that supports surrogate pair.
> In this work, I have the doubt in the original source.
>
> libatalk/unicode/util_unistr.c:
>
>> /*******************************************************************
>> case insensitive string comparison
>> ********************************************************************/
>> int strcasecmp_w(const ucs2_t *a, const ucs2_t *b)
>> {
>>      while (*b&&  toupper_w(*a) == toupper_w(*b)) { a++; b++; }
>>      return (tolower_w(*a) - tolower_w(*b));
>> }
>
> Why does it convert character to lower case at the end only?

Dunno. I'd check glibc or libiconv how they implement strcasecmp_w.

Best!
-f

------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
_______________________________________________
Netatalk-devel mailing list
Netatalk-devel <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/netatalk-devel
David Riley | 21 Apr 2011 17:02
Picon
Gravatar

Re: strcasecmp_w()

Shouldn't really matter... the loop goes until it finds the first dissimilar char (or the end) and gives the
difference of the characters.  It shouldn't matter if it's converting to upper or lower (at least, not in
any charsets I'm aware of), since the difference should be the same.  Odd that it's not the same, though.

On Apr 21, 2011, at 10:24 AM, HAT wrote:

> I am implementing case-conversion that supports surrogate pair.
> In this work, I have the doubt in the original source.
> 
> libatalk/unicode/util_unistr.c:
> 
>> /*******************************************************************
>> case insensitive string comparison
>> ********************************************************************/
>> int strcasecmp_w(const ucs2_t *a, const ucs2_t *b)
>> {
>>     while (*b&&  toupper_w(*a) == toupper_w(*b)) { a++; b++; }
>>     return (tolower_w(*a) - tolower_w(*b));
>> }
> 
> Why does it convert character to lower case at the end only?
> 
> -- 
> HAT
> 
> ------------------------------------------------------------------------------
> Benefiting from Server Virtualization: Beyond Initial Workload 
> Consolidation -- Increasing the use of server virtualization is a top
> priority.Virtualization can reduce costs, simplify management, and improve 
> application availability and disaster protection. Learn more about boosting 
> the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
> _______________________________________________
> Netatalk-devel mailing list
> Netatalk-devel <at> lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/netatalk-devel

------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
HAT | 21 Apr 2011 17:50
Picon
Gravatar

Re: strcasecmp_w()

Oh, I also think that last coversion is not a matter.
However, conversion in the loop is important.
toupper() and tolower() are irreversible conversion.

ex.

U+00B5 MICRO SIGN µ             -> upper -> U+039C GREEK CAPITAL LETTER MU Μ
U+03BC GREEK SMALL LETTER MU μ  -> upper -> U+039C GREEK CAPITAL LETTER MU Μ

U+039C GREEK CAPITAL LETTER MU Μ-> lower -> U+03BC GREEK SMALL LETTER MU μ

Which toupper() or tolower() should we use in while-loop ?


David Riley <fraveydank <at> gmail.com>, Thu, 21 Apr 2011 11:02:48 -0400
> Shouldn't really matter... the loop goes until it finds the first 
> dissimilar char (or the end) and gives the difference of the characters. 
> It shouldn't matter if it's converting to upper or lower (at least, 
> not in any charsets I'm aware of), since the difference should be the 
> same.  Odd that it's not the same, though.
> 
> 
> On Apr 21, 2011, at 10:24 AM, HAT wrote:
> 
>> I am implementing case-conversion that supports surrogate pair.
>> In this work, I have the doubt in the original source.
>> 
>> libatalk/unicode/util_unistr.c:
>> 
>>> /*******************************************************************
>>> case insensitive string comparison
>>> ********************************************************************/
>>> int strcasecmp_w(const ucs2_t *a, const ucs2_t *b)
>>> {
>>>     while (*b&&  toupper_w(*a) == toupper_w(*b)) { a++; b++; }
>>>     return (tolower_w(*a) - tolower_w(*b));
>>> }
>> 
>> Why does it convert character to lower case at the end only?

-- 
HAT
------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
_______________________________________________
Netatalk-devel mailing list
Netatalk-devel <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/netatalk-devel

Gmane