rsync.h

ソースコードを見る。


データ構造

struct  idev
struct  hlink
struct  file_struct
struct  file_list
struct  sum_buf
struct  sum_struct
struct  map_struct
struct  filter_struct
struct  filter_list_struct
struct  stats

列挙型

enum  logcode {
  FERROR = 1, FINFO = 2, FLOG = 3,
  FCLIENT = 4, FNAME = 5, FSOCKERR = 6
}
enum  msgcode {
  MSG_DATA = 0, MSG_ERROR = FERROR, MSG_INFO = FINFO,
  MSG_LOG = FLOG, MSG_SOCKERR = FSOCKERR, MSG_REDO = 9,
  MSG_SUCCESS = 100, MSG_DELETED = 101, MSG_DONE = 86
}

関数

int asprintf (char **ptr, const char *format,...)
int vasprintf (char **ptr, const char *format, va_list ap)
int vsnprintf (char *str, size_t count, const char *fmt, va_list args)
int snprintf (char *str, size_t count, const char *fmt,...)
void rprintf (enum logcode, const char *,...) __attribute__((format(printf
void void rsyserr (enum logcode, int, const char *,...) __attribute__((format(printf
size_t strlcpy (char *d, const char *s, size_t bufsize)
 Like strncpy but does not 0 fill the buffer and always null terminates.
size_t strlcat (char *d, const char *s, size_t bufsize)
 Like strncat() but does not 0 fill the buffer and always null terminates.
const char * inet_ntop (int af, const void *src, char *dst, size_t size)
int inet_pton (int af, const char *src, void *dst)
const char * get_panic_action (void)
 This routine catches signals and tries to send them to gdb.

変数

char * sys_errlist []
int errno
int verbose

列挙型

enum logcode

列挙型の値:
FERROR 
FINFO 
FLOG 
FCLIENT 
FNAME 
FSOCKERR 

rsync.h163 行で定義されています。

00163 { FERROR=1, FINFO=2, FLOG=3, FCLIENT=4, FNAME=5, FSOCKERR=6 };

enum msgcode

列挙型の値:
MSG_DATA 
MSG_ERROR 
MSG_INFO 
MSG_LOG 
MSG_SOCKERR 
MSG_REDO 
MSG_SUCCESS 
MSG_DELETED 
MSG_DONE 

rsync.h167 行で定義されています。

00167              {
00168         MSG_DATA=0,     /* raw data on the multiplexed stream */
00169         MSG_ERROR=FERROR, MSG_INFO=FINFO, /* remote logging */
00170         MSG_LOG=FLOG, MSG_SOCKERR=FSOCKERR, /* sibling logging */
00171         MSG_REDO=9,     /* reprocess indicated flist index */
00172         MSG_SUCCESS=100,/* successfully updated indicated flist index */
00173         MSG_DELETED=101,/* successfully deleted a file on receiving side */
00174         MSG_DONE=86     /* current phase is done */
00175 };


関数

int asprintf ( char **  ptr,
const char *  format,
  ... 
)

snprintf.c871 行で定義されています。

参照先 vasprintf().

参照元 _Insure_trap_error()add_rule()finish_pre_exec()full_fname()glob_expand()open_socket_in()rsync_module()server_options().

00872 {
00873         va_list ap;
00874         int ret;
00875         
00876         *ptr = NULL;
00877         va_start(ap, format);
00878         ret = vasprintf(ptr, format, ap);
00879         va_end(ap);
00880 
00881         return ret;
00882 }

int vasprintf ( char **  ptr,
const char *  format,
va_list  ap 
)

snprintf.c848 行で定義されています。

参照先 vsnprintf().

参照元 asprintf().

00849 {
00850         int ret;
00851         va_list ap2;
00852 
00853         VA_COPY(ap2, ap);
00854         
00855         ret = vsnprintf(NULL, 0, format, ap2);
00856         if (ret <= 0) return ret;
00857 
00858         (*ptr) = (char *)malloc(ret+1);
00859         if (!*ptr) return -1;
00860 
00861         VA_COPY(ap2, ap);
00862 
00863         ret = vsnprintf(*ptr, ret+1, format, ap2);
00864 
00865         return ret;
00866 }

int vsnprintf ( char *  str,
size_t  count,
const char *  fmt,
va_list  args 
)

参照元 io_printf()rprintf()rsync_snprintf()rsyserr()vasprintf().

int snprintf ( char *  str,
size_t  count,
const char *  fmt,
  ... 
)

参照元 create_refuse_error()daemon_main()establish_proxy_connection()getnameinfo()human_dnum()log_formatted()main()open_socket_in()open_socket_out()parse_arguments()rprint_progress()rsyserr().

void rprintf ( enum logcode  ,
const char *  ,
  ... 
)

void void rsyserr ( enum logcode  ,
int  ,
const char *  ,
  ... 
)

size_t strlcpy ( char *  d,
const char *  s,
size_t  bufsize 
)

Like strncpy but does not 0 fill the buffer and always null terminates.

引数:
bufsize is the size of the destination buffer.
戻り値:
index of the terminating byte.

lib/compat.c115 行で定義されています。

参照元 add_rule()check_for_hostspec()client_addr()delete_item()do_mknod()gen_challenge()generate_files()get_dirlist()get_tmpname()log_formatted()lp_do_parameter()make_file()open_socket_out()parse_filter_file()parse_merge_name()pathjoin()pop_dir()push_local_filters()receive_file_entry()robust_unlink()run_test()rwrite()send_directory()send_file_entry()send_file_list()send_files()setup_merge_file()timestring().

00116 {
00117         size_t len = strlen(s);
00118         size_t ret = len;
00119         if (bufsize > 0) {
00120                 if (len >= bufsize)
00121                         len = bufsize-1;
00122                 memcpy(d, s, len);
00123                 d[len] = 0;
00124         }
00125         return ret;
00126 }

size_t strlcat ( char *  d,
const char *  s,
size_t  bufsize 
)

Like strncat() but does not 0 fill the buffer and always null terminates.

引数:
bufsize length of the buffer, which should be one more than the maximum resulting string length.

lib/compat.c137 行で定義されています。

参照元 log_formatted().

00138 {
00139         size_t len1 = strlen(d);
00140         size_t len2 = strlen(s);
00141         size_t ret = len1 + len2;
00142 
00143         if (len1 < bufsize - 1) {
00144                 if (len2 >= bufsize - len1)
00145                         len2 = bufsize - len1 - 1;
00146                 memcpy(d+len1, s, len2);
00147                 d[len1+len2] = 0;
00148         }
00149         return ret;
00150 }

const char* inet_ntop ( int  af,
const void *  src,
char *  dst,
size_t  size 
)

inet_ntop.c46 行で定義されています。

参照先 errnoinet_ntop4()inet_ntop6().

参照元 getnameinfo().

00047 {
00048         switch (af) {
00049         case AF_INET:
00050                 return (inet_ntop4(src, dst, size));
00051 #ifdef AF_INET6
00052         case AF_INET6:
00053                 return (inet_ntop6(src, dst, size));
00054 #endif
00055         default:
00056                 errno = EAFNOSUPPORT;
00057                 return (NULL);
00058         }
00059         /* NOTREACHED */
00060 }

int inet_pton ( int  af,
const char *  src,
void *  dst 
)

inet_pton.c46 行で定義されています。

参照先 errnoinet_pton4()inet_pton6().

参照元 getaddrinfo()match_address().

00049 {
00050         switch (af) {
00051         case AF_INET:
00052                 return (inet_pton4(src, dst));
00053 #ifdef INET6
00054         case AF_INET6:
00055                 return (inet_pton6(src, dst));
00056 #endif
00057         default:
00058                 errno = EAFNOSUPPORT;
00059                 return (-1);
00060         }
00061         /* NOTREACHED */
00062 }

const char* get_panic_action ( void   ) 

This routine catches signals and tries to send them to gdb.

Because it's called from inside a signal handler it ought not to use too many library routines.

TODO:
Perhaps use "screen -X" instead/as well, to help people debugging without easy access to X. Perhaps use an environment variable, or just call a script?
TODO:
The /proc/ magic probably only works on Linux (and Solaris?) Can we be more portable?

main.c1149 行で定義されています。

参照元 print_rsync_version()rsync_panic_handler().

01150 {
01151         const char *cmd_fmt = getenv("RSYNC_PANIC_ACTION");
01152 
01153         if (cmd_fmt)
01154                 return cmd_fmt;
01155         else
01156                 return "xterm -display :0 -T Panic -n Panic "
01157                         "-e gdb /proc/%d/exe %d";
01158 }


変数

char* sys_errlist[]

int errno

参照元 acl_sort()change_sacl_perms()claim_connection()client_sockaddr()copy_file()create_directory_path()daemon_main()default_perms_for_dir()delete_item()do_cmd()do_mknod()do_mkstemp()do_recv()do_server_recv()do_server_sender()dup_acl()establish_proxy_connection()failed()finish_transfer()flush_write_file()full_write()generate_files()get_local_name()get_secret()getpassf()handle_delayed_updates()hard_link_check()hard_link_one()hpux_acl_call_presence()inet_ntop()inet_ntop4()inet_pton()keep_backup()local_child()logfile_open()main()make_acl()make_bak_dir()make_file()make_simple_backup()map_ptr()maybe_hard_link()msg2genr_flush()msleep()open_socket_in()OpenConfFile()pack_smb_acl()parse_filter_file()piped_child()push_keep_backup_acl()read_filesfrom_line()read_timeout()receive_data()recv_files()recv_generator()robust_move()robust_rename()robust_unlink()rsync_module()rsync_xal_get()rsync_xal_set()run_program()rwrite()safe_read()send_directory()send_file_list()send_files()set_acl()set_file_attrs()set_keep_backup_acl()set_socket_options()setup_iconv()sock_exec()socketpair_tcp()start_accept_loop()store_access_in_entry()sys_acl_add_perm()sys_acl_clear_perms()sys_acl_create_entry()sys_acl_delete_def_file()sys_acl_free_acl()sys_acl_free_text()sys_acl_get_entry()sys_acl_get_fd()sys_acl_get_file()sys_acl_get_permset()sys_acl_get_qualifier()sys_acl_get_tag_type()sys_acl_init()sys_acl_set_fd()sys_acl_set_file()sys_acl_set_permset()sys_acl_set_qualifier()sys_acl_set_tag_type()sys_acl_to_text()sys_acl_valid()try_dests_non()try_dests_reg()unpack_smb_acl()wait_process()wait_process_with_flush()waitpid()write_batch_shell_file()writefd_unbuffered().

int verbose

options.c163 行で定義されています。


rsyncに対してSat Dec 5 19:45:45 2009に生成されました。  doxygen 1.4.7