Changeset 2469
- Timestamp:
- 08/19/07 03:03:04 (1 year ago)
- Files:
-
- plugins/opie-sync/src/opie_comms.c (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
plugins/opie-sync/src/opie_comms.c
r2467 r2469 116 116 * create a backup file from a string 117 117 */ 118 intbackup_file(const char *backupfile, const char *str, int len) {118 gboolean backup_file(const char *backupfile, const char *str, int len) { 119 119 osync_trace(TRACE_ENTRY, "%s(%s, %p, %i)", __func__, backupfile, str, len); 120 120 121 121 int destfd = 0; 122 int rc = FALSE;123 122 int bufsize = 1024; 124 123 int wbytes; 125 124 int pos = 0; 125 char *errmsg = NULL; 126 126 127 127 destfd = open(backupfile, O_CREAT | O_WRONLY | O_EXCL, 0600); 128 128 if(destfd == -1) { 129 osync_trace( TRACE_INTERNAL, "error creating backup file" ); 130 perror("error creating backup file"); 129 errmsg = g_strdup_printf("error creating backup file: %s", strerror(errno)); 131 130 goto error; 132 131 } … … 138 137 wbytes = write(destfd, str + pos, bufsize); 139 138 if(wbytes == -1) { 140 osync_trace( TRACE_INTERNAL, "error writing to backup file" ); 141 perror("error writing to backup file"); 142 close(destfd); 139 errmsg = g_strdup_printf("error writing to backup file: %s", strerror(errno)); 143 140 goto error; 144 141 } … … 152 149 } 153 150 154 rc = TRUE; 155 151 osync_trace(TRACE_EXIT, "%s(%i)", __func__, TRUE); 152 return TRUE; 153 156 154 error: 157 158 osync_trace(TRACE_EXIT, "%s(%i)", __func__, rc);159 return rc;155 osync_trace(TRACE_EXIT_ERROR, "%s: %s", __func__, errmsg); 156 g_free(errmsg); 157 return FALSE; 160 158 } 161 159 … … 179 177 backuppath = g_build_filename(backupdir, datestamp, NULL); 180 178 if(g_mkdir_with_parents(backuppath, 0700)) { 181 perror("error creating backup directory"); 182 osync_trace(TRACE_EXIT_ERROR, "error creating backup directory"); 179 osync_trace(TRACE_EXIT_ERROR, "error creating backup directory: %s", strerror(errno)); 183 180 goto error; 184 181 } … … 279 276 g_free(basename); 280 277 } 278 else 279 rc = FALSE; 281 280 } 282 281 … … 941 940 osync_trace(TRACE_ENTRY, "%s(%p, %s, %p)", __func__, env, remotefile, data); 942 941 943 gboolean rc = TRUE;944 942 char* scpcommand = NULL; 945 943 int scpretval = 0; 946 944 int scpexitstatus = 0; 945 char *errmsg = NULL; 947 946 948 947 TempFile *tmpfile = create_temp_file(); 949 948 if(!tmpfile) { 950 /* could not create temp file - error message has already been sent to trace */ 951 rc = FALSE; 949 /* could not create temp file */ 950 errmsg = g_strdup("failed to create temp file"); 951 goto error; 952 952 } 953 953 else { … … 963 963 wbytes = write(tmpfile->fd, data + pos, bufsize); 964 964 if(wbytes == -1) { 965 osync_trace( TRACE_INTERNAL, "error writing to backup file" ); 966 perror("error writing to backup file"); 967 rc = FALSE; 965 errmsg = g_strdup_printf("error writing to temp file: %s", strerror(errno)); 968 966 goto error; 969 967 } … … 992 990 993 991 if((scpretval == -1) || (scpexitstatus != 0)) { 994 rc = FALSE;995 osync_trace( TRACE_INTERNAL, "ssh create path failed" );992 errmsg = g_strdup("ssh create path failed"); 993 goto error; 996 994 } 997 995 g_free(scpcommand); … … 1008 1006 1009 1007 if((scpretval == -1) || (scpexitstatus != 0)) { 1010 rc = FALSE;1011 osync_trace( TRACE_INTERNAL, "scp upload failed" );1008 errmsg = g_strdup("scp upload failed"); 1009 goto error; 1012 1010 } 1013 1011 else { 1014 rc = TRUE;1015 1012 osync_trace( TRACE_INTERNAL, "scp upload ok" ); 1016 1013 } … … 1019 1016 } 1020 1017 1021 error:1022 1023 1018 if(tmpfile) 1024 1019 cleanup_temp_file(tmpfile); 1025 1020 1026 osync_trace(TRACE_EXIT, "%s(%d)", __func__, rc ); 1027 return rc; 1021 osync_trace(TRACE_EXIT, "%s(%d)", __func__, TRUE ); 1022 return TRUE; 1023 1024 error: 1025 1026 if(tmpfile) 1027 cleanup_temp_file(tmpfile); 1028 if(scpcommand) 1029 g_free(scpcommand); 1030 1031 osync_trace(TRACE_EXIT_ERROR, "%s: %s", __func__, errmsg ); 1032 return FALSE; 1028 1033 } 1029 1034
