~ubuntu-branches/ubuntu/natty/gnome-keyring/natty-proposed

« back to all changes in this revision

Viewing changes to daemon/ssh-agent/gkd-ssh-agent.c

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2010-03-10 21:37:48 UTC
  • mfrom: (1.1.59 upstream)
  • Revision ID: james.westby@ubuntu.com-20100310213748-imimrnfxu32ih4t3
Tags: 2.29.92-0ubuntu1
* New upstream version:
  - Fix various problems with not storing secret value properly.
  - Return no results when a search includes a bad collection identifier.
  - Don't raise error if ssh client disconnects early.
  - Allow running in a test environment.
  - Fix error when setting default keyring to NULL.
  - Autostart gnome-keyring-daemon in LXDE as well.
  - Rework the startup again, to use a singleton crontrolled via dbus, to help
    when no process was started by pam.
  - Display password and confirm prompts when creating keyring.
  - Allow specifying CKA_ID when creating collection.
  - Give translatable label to created login keyring.
  - When no default keyring set, use login keyring.
  - Fix problem initializing socket path in rpc module.
  - Fix endless loop in reading data.
  - Potential fix or sporadic crash.
  - Solaris build fixes.
  - Updated translations.
* debian/patches/05_git_no_read_looping.patch:
  - the change is in the new version

Show diffs side-by-side

added added

removed removed

Lines of Context:
56
56
 
57
57
                res = read (fd, buf, len);
58
58
 
59
 
                if (res <= 0) {
60
 
                        if (errno == EAGAIN && errno == EINTR)
 
59
                if (res < 0) {
 
60
                        if (errno == EAGAIN || errno == EINTR)
61
61
                                continue;
62
 
                        if (res < 0)
63
 
                                g_warning ("couldn't read %u bytes from client: %s", all,
64
 
                                           g_strerror (errno));
 
62
                        g_warning ("couldn't read %u bytes from client: %s", all,
 
63
                                   g_strerror (errno));
 
64
                        return FALSE;
 
65
                } else if (res == 0) {
65
66
                        return FALSE;
66
67
                } else  {
67
68
                        len -= res;
81
82
        while (len > 0) {
82
83
 
83
84
                res = write (fd, buf, len);
84
 
 
85
 
                if (res <= 0) {
 
85
                if (res < 0) {
86
86
                        if (errno == EAGAIN && errno == EINTR)
87
87
                                continue;
88
88
                        if (errno != EPIPE)
89
89
                                g_warning ("couldn't write %u bytes to client: %s", all,
90
 
                                           res < 0 ? g_strerror (errno) : "");
 
90
                                           g_strerror (errno));
 
91
                        return FALSE;
 
92
                } else if (res == 0) {
 
93
                        g_warning ("couldn't write %u bytes to client", all);
91
94
                        return FALSE;
92
95
                } else  {
93
96
                        len -= res;