| config.h | | config.h | |
| | | | |
| skipping to change at line 100 | | skipping to change at line 100 | |
| | | | |
| /* Define to 1 if you have the <libaudit.h> header file. */ | | /* Define to 1 if you have the <libaudit.h> header file. */ | |
| #define HAVE_LIBAUDIT_H 1 | | #define HAVE_LIBAUDIT_H 1 | |
| | | | |
| /* Define if libcryptsetup is available */ | | /* Define if libcryptsetup is available */ | |
| /* #undef HAVE_LIBCRYPTSETUP */ | | /* #undef HAVE_LIBCRYPTSETUP */ | |
| | | | |
| /* Have tcpwrap? */ | | /* Have tcpwrap? */ | |
| #define HAVE_LIBWRAP /**/ | | #define HAVE_LIBWRAP /**/ | |
| | | | |
|
| | | /* Define to 1 if you have the <linux/btrfs.h> header file. */ | |
| | | /* #undef HAVE_LINUX_BTRFS_H */ | |
| | | | |
| /* Logind support available */ | | /* Logind support available */ | |
| #define HAVE_LOGIND 1 | | #define HAVE_LOGIND 1 | |
| | | | |
| /* Machined support available */ | | /* Machined support available */ | |
| #define HAVE_MACHINED 1 | | #define HAVE_MACHINED 1 | |
| | | | |
| /* Define to 1 if your system has a GNU libc compatible `malloc' function,
and | | /* Define to 1 if your system has a GNU libc compatible `malloc' function,
and | |
| to 0 otherwise. */ | | to 0 otherwise. */ | |
| #define HAVE_MALLOC 1 | | #define HAVE_MALLOC 1 | |
| | | | |
| | | | |
| skipping to change at line 256 | | skipping to change at line 259 | |
| /* Name of package */ | | /* Name of package */ | |
| #define PACKAGE "systemd" | | #define PACKAGE "systemd" | |
| | | | |
| /* Define to the address where bug reports for this package should be sent.
*/ | | /* Define to the address where bug reports for this package should be sent.
*/ | |
| #define PACKAGE_BUGREPORT "http://bugs.freedesktop.org/enter_bug.cgi?produc
t=systemd" | | #define PACKAGE_BUGREPORT "http://bugs.freedesktop.org/enter_bug.cgi?produc
t=systemd" | |
| | | | |
| /* Define to the full name of this package. */ | | /* Define to the full name of this package. */ | |
| #define PACKAGE_NAME "systemd" | | #define PACKAGE_NAME "systemd" | |
| | | | |
| /* Define to the full name and version of this package. */ | | /* Define to the full name and version of this package. */ | |
|
| #define PACKAGE_STRING "systemd 206" | | #define PACKAGE_STRING "systemd 207" | |
| | | | |
| /* Define to the one symbol short name of this package. */ | | /* Define to the one symbol short name of this package. */ | |
| #define PACKAGE_TARNAME "systemd" | | #define PACKAGE_TARNAME "systemd" | |
| | | | |
| /* Define to the home page for this package. */ | | /* Define to the home page for this package. */ | |
| #define PACKAGE_URL "http://www.freedesktop.org/wiki/Software/systemd" | | #define PACKAGE_URL "http://www.freedesktop.org/wiki/Software/systemd" | |
| | | | |
| /* Define to the version of this package. */ | | /* Define to the version of this package. */ | |
|
| #define PACKAGE_VERSION "206" | | #define PACKAGE_VERSION "207" | |
| | | | |
| /* Path of /etc/rc.local script */ | | /* Path of /etc/rc.local script */ | |
| #define RC_LOCAL_SCRIPT_PATH_START "/etc/rc.local" | | #define RC_LOCAL_SCRIPT_PATH_START "/etc/rc.local" | |
| | | | |
| /* Path of /usr/sbin/halt.local script */ | | /* Path of /usr/sbin/halt.local script */ | |
| #define RC_LOCAL_SCRIPT_PATH_STOP "/usr/sbin/halt.local" | | #define RC_LOCAL_SCRIPT_PATH_STOP "/usr/sbin/halt.local" | |
| | | | |
| /* Define to the type of arg 1 for `select'. */ | | /* Define to the type of arg 1 for `select'. */ | |
| #define SELECT_TYPE_ARG1 int | | #define SELECT_TYPE_ARG1 int | |
| | | | |
| | | | |
| skipping to change at line 316 | | skipping to change at line 319 | |
| /* Enable extensions on HP NonStop. */ | | /* Enable extensions on HP NonStop. */ | |
| #ifndef _TANDEM_SOURCE | | #ifndef _TANDEM_SOURCE | |
| # define _TANDEM_SOURCE 1 | | # define _TANDEM_SOURCE 1 | |
| #endif | | #endif | |
| /* Enable general extensions on Solaris. */ | | /* Enable general extensions on Solaris. */ | |
| #ifndef __EXTENSIONS__ | | #ifndef __EXTENSIONS__ | |
| # define __EXTENSIONS__ 1 | | # define __EXTENSIONS__ 1 | |
| #endif | | #endif | |
| | | | |
| /* Version number of package */ | | /* Version number of package */ | |
|
| #define VERSION "206" | | #define VERSION "207" | |
| | | | |
| /* Enable large inode numbers on Mac OS X 10.5. */ | | /* Enable large inode numbers on Mac OS X 10.5. */ | |
| #ifndef _DARWIN_USE_64_BIT_INODE | | #ifndef _DARWIN_USE_64_BIT_INODE | |
| # define _DARWIN_USE_64_BIT_INODE 1 | | # define _DARWIN_USE_64_BIT_INODE 1 | |
| #endif | | #endif | |
| | | | |
| /* Number of bits in a file offset, on hosts where this is settable. */ | | /* Number of bits in a file offset, on hosts where this is settable. */ | |
| #define _FILE_OFFSET_BITS 64 | | #define _FILE_OFFSET_BITS 64 | |
| | | | |
| /* Define for large files, on AIX-style hosts. */ | | /* Define for large files, on AIX-style hosts. */ | |
| | | | |
End of changes. 4 change blocks. |
| 3 lines changed or deleted | | 6 lines changed or added | |
|
| dbus-kill.h | | dbus-kill.h | |
| | | | |
| skipping to change at line 32 | | skipping to change at line 32 | |
| ***/ | | ***/ | |
| | | | |
| #include <dbus/dbus.h> | | #include <dbus/dbus.h> | |
| | | | |
| #include "manager.h" | | #include "manager.h" | |
| #include "dbus-common.h" | | #include "dbus-common.h" | |
| | | | |
| #define BUS_KILL_CONTEXT_INTERFACE \ | | #define BUS_KILL_CONTEXT_INTERFACE \ | |
| " <property name=\"KillMode\" type=\"s\" access=\"read\"/>\n" \ | | " <property name=\"KillMode\" type=\"s\" access=\"read\"/>\n" \ | |
| " <property name=\"KillSignal\" type=\"i\" access=\"read\"/>\n" \ | | " <property name=\"KillSignal\" type=\"i\" access=\"read\"/>\n" \ | |
|
| " <property name=\"SendSIGKILL\" type=\"b\" access=\"read\"/>\n" | | " <property name=\"SendSIGKILL\" type=\"b\" access=\"read\"/>\n" \ | |
| | | " <property name=\"SendSIGHUP\" type=\"b\" access=\"read\"/>\n" | |
| #define BUS_KILL_COMMAND_INTERFACE(name) \ | | | |
| " <property name=\"" name "\" type=\"a(sasbttuii)\" access=\"read\ | | | |
| "/>\n" | | | |
| | | | |
| extern const BusProperty bus_kill_context_properties[]; | | extern const BusProperty bus_kill_context_properties[]; | |
| | | | |
|
| int bus_kill_append_mode(DBusMessageIter *i, const char *property, void *da
ta); | | int bus_kill_context_set_transient_property(Unit *u, KillContext *c, const
char *name, DBusMessageIter *i, UnitSetPropertiesMode mode, DBusError *erro
r); | |
| | | | |
End of changes. 2 change blocks. |
| 5 lines changed or deleted | | 2 lines changed or added | |
|
| fileio.h | | fileio.h | |
| | | | |
| skipping to change at line 38 | | skipping to change at line 38 | |
| int write_string_to_file(FILE *f, const char *line); | | int write_string_to_file(FILE *f, const char *line); | |
| int write_string_file(const char *fn, const char *line); | | int write_string_file(const char *fn, const char *line); | |
| int write_string_file_atomic(const char *fn, const char *line); | | int write_string_file_atomic(const char *fn, const char *line); | |
| | | | |
| int read_one_line_file(const char *fn, char **line); | | int read_one_line_file(const char *fn, char **line); | |
| int read_full_file(const char *fn, char **contents, size_t *size); | | int read_full_file(const char *fn, char **contents, size_t *size); | |
| | | | |
| int parse_env_file(const char *fname, const char *separator, ...) _sentinel
_; | | int parse_env_file(const char *fname, const char *separator, ...) _sentinel
_; | |
| int load_env_file(const char *fname, const char *separator, char ***l); | | int load_env_file(const char *fname, const char *separator, char ***l); | |
| int write_env_file(const char *fname, char **l); | | int write_env_file(const char *fname, char **l); | |
|
| | | | |
| | | int executable_is_script(const char *path, char **interpreter); | |
| | | | |
End of changes. 1 change blocks. |
| 0 lines changed or deleted | | 0 lines changed or added | |
|
| journald-server.h | | journald-server.h | |
| | | | |
| skipping to change at line 156 | | skipping to change at line 156 | |
| const char *split_mode_to_string(SplitMode s) _const_; | | const char *split_mode_to_string(SplitMode s) _const_; | |
| SplitMode split_mode_from_string(const char *s) _pure_; | | SplitMode split_mode_from_string(const char *s) _pure_; | |
| | | | |
| void server_fix_perms(Server *s, JournalFile *f, uid_t uid); | | void server_fix_perms(Server *s, JournalFile *f, uid_t uid); | |
| bool shall_try_append_again(JournalFile *f, int r); | | bool shall_try_append_again(JournalFile *f, int r); | |
| int server_init(Server *s); | | int server_init(Server *s); | |
| void server_done(Server *s); | | void server_done(Server *s); | |
| void server_sync(Server *s); | | void server_sync(Server *s); | |
| void server_vacuum(Server *s); | | void server_vacuum(Server *s); | |
| void server_rotate(Server *s); | | void server_rotate(Server *s); | |
|
| int server_schedule_sync(Server *s); | | int server_schedule_sync(Server *s, int priority); | |
| int server_flush_to_var(Server *s); | | int server_flush_to_var(Server *s); | |
| int process_event(Server *s, struct epoll_event *ev); | | int process_event(Server *s, struct epoll_event *ev); | |
| void server_maybe_append_tags(Server *s); | | void server_maybe_append_tags(Server *s); | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| journald-syslog.h | | journald-syslog.h | |
| | | | |
| skipping to change at line 28 | | skipping to change at line 28 | |
| Lesser General Public License for more details. | | Lesser General Public License for more details. | |
| | | | |
| You should have received a copy of the GNU Lesser General Public License | | You should have received a copy of the GNU Lesser General Public License | |
| along with systemd; If not, see <http://www.gnu.org/licenses/>. | | along with systemd; If not, see <http://www.gnu.org/licenses/>. | |
| ***/ | | ***/ | |
| | | | |
| #include "journald-server.h" | | #include "journald-server.h" | |
| | | | |
| int syslog_fixup_facility(int priority) _const_; | | int syslog_fixup_facility(int priority) _const_; | |
| | | | |
|
| void syslog_parse_priority(char **p, int *priority); | | void syslog_parse_priority(char **p, int *priority, bool with_facility); | |
| size_t syslog_parse_identifier(const char **buf, char **identifier, char **
pid); | | size_t syslog_parse_identifier(const char **buf, char **identifier, char **
pid); | |
| | | | |
| void server_forward_syslog(Server *s, int priority, const char *identifier,
const char *message, struct ucred *ucred, struct timeval *tv); | | void server_forward_syslog(Server *s, int priority, const char *identifier,
const char *message, struct ucred *ucred, struct timeval *tv); | |
| | | | |
| void server_process_syslog_message(Server *s, const char *buf, struct ucred
*ucred, struct timeval *tv, const char *label, size_t label_len); | | void server_process_syslog_message(Server *s, const char *buf, struct ucred
*ucred, struct timeval *tv, const char *label, size_t label_len); | |
| int server_open_syslog_socket(Server *s); | | int server_open_syslog_socket(Server *s); | |
| | | | |
| void server_maybe_warn_forward_syslog_missed(Server *s); | | void server_maybe_warn_forward_syslog_missed(Server *s); | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| label.h | | label.h | |
| | | | |
| skipping to change at line 43 | | skipping to change at line 43 | |
| int label_socket_set(const char *label); | | int label_socket_set(const char *label); | |
| void label_socket_clear(void); | | void label_socket_clear(void); | |
| | | | |
| int label_context_set(const char *path, mode_t mode); | | int label_context_set(const char *path, mode_t mode); | |
| void label_context_clear(void); | | void label_context_clear(void); | |
| | | | |
| void label_free(const char *label); | | void label_free(const char *label); | |
| | | | |
| int label_get_create_label_from_exe(const char *exe, char **label); | | int label_get_create_label_from_exe(const char *exe, char **label); | |
| | | | |
|
| int label_mkdir(const char *path, mode_t mode, bool apply); | | int label_mkdir(const char *path, mode_t mode); | |
| | | | |
| void label_retest_selinux(void); | | void label_retest_selinux(void); | |
| | | | |
| int label_bind(int fd, const struct sockaddr *addr, socklen_t addrlen); | | int label_bind(int fd, const struct sockaddr *addr, socklen_t addrlen); | |
| | | | |
| int label_write_one_line_file_atomic(const char *fn, const char *line); | | int label_write_one_line_file_atomic(const char *fn, const char *line); | |
| int label_write_env_file(const char *fname, char **l); | | int label_write_env_file(const char *fname, char **l); | |
| int label_fopen_temporary(const char *path, FILE **_f, char **_temp_path); | | int label_fopen_temporary(const char *path, FILE **_f, char **_temp_path); | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| logind-session.h | | logind-session.h | |
| | | | |
| skipping to change at line 104 | | skipping to change at line 104 | |
| uint32_t audit_id; | | uint32_t audit_id; | |
| | | | |
| int fifo_fd; | | int fifo_fd; | |
| char *fifo_path; | | char *fifo_path; | |
| | | | |
| bool idle_hint; | | bool idle_hint; | |
| dual_timestamp idle_hint_timestamp; | | dual_timestamp idle_hint_timestamp; | |
| | | | |
| bool in_gc_queue:1; | | bool in_gc_queue:1; | |
| bool started:1; | | bool started:1; | |
|
| | | bool closing:1; | |
| | | | |
| DBusMessage *create_message; | | DBusMessage *create_message; | |
| | | | |
| LIST_FIELDS(Session, sessions_by_user); | | LIST_FIELDS(Session, sessions_by_user); | |
| LIST_FIELDS(Session, sessions_by_seat); | | LIST_FIELDS(Session, sessions_by_seat); | |
| | | | |
| LIST_FIELDS(Session, gc_queue); | | LIST_FIELDS(Session, gc_queue); | |
| }; | | }; | |
| | | | |
| Session *session_new(Manager *m, const char *id); | | Session *session_new(Manager *m, const char *id); | |
| | | | |
| skipping to change at line 126 | | skipping to change at line 127 | |
| int session_check_gc(Session *s, bool drop_not_started); | | int session_check_gc(Session *s, bool drop_not_started); | |
| void session_add_to_gc_queue(Session *s); | | void session_add_to_gc_queue(Session *s); | |
| int session_activate(Session *s); | | int session_activate(Session *s); | |
| bool session_is_active(Session *s); | | bool session_is_active(Session *s); | |
| int session_get_idle_hint(Session *s, dual_timestamp *t); | | int session_get_idle_hint(Session *s, dual_timestamp *t); | |
| void session_set_idle_hint(Session *s, bool b); | | void session_set_idle_hint(Session *s, bool b); | |
| int session_create_fifo(Session *s); | | int session_create_fifo(Session *s); | |
| void session_remove_fifo(Session *s); | | void session_remove_fifo(Session *s); | |
| int session_start(Session *s); | | int session_start(Session *s); | |
| int session_stop(Session *s); | | int session_stop(Session *s); | |
|
| | | int session_finalize(Session *s); | |
| int session_save(Session *s); | | int session_save(Session *s); | |
| int session_load(Session *s); | | int session_load(Session *s); | |
| int session_kill(Session *s, KillWho who, int signo); | | int session_kill(Session *s, KillWho who, int signo); | |
| | | | |
| char *session_bus_path(Session *s); | | char *session_bus_path(Session *s); | |
| | | | |
| SessionState session_get_state(Session *u); | | SessionState session_get_state(Session *u); | |
| | | | |
| extern const DBusObjectPathVTable bus_session_vtable; | | extern const DBusObjectPathVTable bus_session_vtable; | |
| | | | |
| | | | |
End of changes. 2 change blocks. |
| 0 lines changed or deleted | | 2 lines changed or added | |
|
| logind-user.h | | logind-user.h | |
| | | | |
| skipping to change at line 64 | | skipping to change at line 64 | |
| | | | |
| char *service_job; | | char *service_job; | |
| char *slice_job; | | char *slice_job; | |
| | | | |
| Session *display; | | Session *display; | |
| | | | |
| dual_timestamp timestamp; | | dual_timestamp timestamp; | |
| | | | |
| bool in_gc_queue:1; | | bool in_gc_queue:1; | |
| bool started:1; | | bool started:1; | |
|
| bool slice_created:1; | | bool closing:1; | |
| bool service_created:1; | | | |
| | | | |
| LIST_HEAD(Session, sessions); | | LIST_HEAD(Session, sessions); | |
| LIST_FIELDS(User, gc_queue); | | LIST_FIELDS(User, gc_queue); | |
| }; | | }; | |
| | | | |
| User* user_new(Manager *m, uid_t uid, gid_t gid, const char *name); | | User* user_new(Manager *m, uid_t uid, gid_t gid, const char *name); | |
| void user_free(User *u); | | void user_free(User *u); | |
| int user_check_gc(User *u, bool drop_not_started); | | int user_check_gc(User *u, bool drop_not_started); | |
| void user_add_to_gc_queue(User *u); | | void user_add_to_gc_queue(User *u); | |
| int user_start(User *u); | | int user_start(User *u); | |
| int user_stop(User *u); | | int user_stop(User *u); | |
|
| | | int user_finalize(User *u); | |
| UserState user_get_state(User *u); | | UserState user_get_state(User *u); | |
| int user_get_idle_hint(User *u, dual_timestamp *t); | | int user_get_idle_hint(User *u, dual_timestamp *t); | |
| int user_save(User *u); | | int user_save(User *u); | |
| int user_load(User *u); | | int user_load(User *u); | |
| int user_kill(User *u, int signo); | | int user_kill(User *u, int signo); | |
| | | | |
| char *user_bus_path(User *s); | | char *user_bus_path(User *s); | |
| | | | |
| extern const DBusObjectPathVTable bus_user_vtable; | | extern const DBusObjectPathVTable bus_user_vtable; | |
| | | | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| logind.h | | logind.h | |
| | | | |
| skipping to change at line 166 | | skipping to change at line 166 | |
| int manager_enumerate_sessions(Manager *m); | | int manager_enumerate_sessions(Manager *m); | |
| int manager_enumerate_users(Manager *m); | | int manager_enumerate_users(Manager *m); | |
| int manager_enumerate_inhibitors(Manager *m); | | int manager_enumerate_inhibitors(Manager *m); | |
| | | | |
| int manager_startup(Manager *m); | | int manager_startup(Manager *m); | |
| int manager_run(Manager *m); | | int manager_run(Manager *m); | |
| int manager_spawn_autovt(Manager *m, int vtnr); | | int manager_spawn_autovt(Manager *m, int vtnr); | |
| | | | |
| void manager_gc(Manager *m, bool drop_not_started); | | void manager_gc(Manager *m, bool drop_not_started); | |
| | | | |
|
| | | bool manager_shall_kill(Manager *m, const char *user); | |
| | | | |
| int manager_get_idle_hint(Manager *m, dual_timestamp *t); | | int manager_get_idle_hint(Manager *m, dual_timestamp *t); | |
| | | | |
| int manager_get_user_by_pid(Manager *m, pid_t pid, User **user); | | int manager_get_user_by_pid(Manager *m, pid_t pid, User **user); | |
| int manager_get_session_by_pid(Manager *m, pid_t pid, Session **session); | | int manager_get_session_by_pid(Manager *m, pid_t pid, Session **session); | |
| | | | |
| extern const DBusObjectPathVTable bus_manager_vtable; | | extern const DBusObjectPathVTable bus_manager_vtable; | |
| | | | |
| DBusHandlerResult bus_message_filter(DBusConnection *c, DBusMessage *messag
e, void *userdata); | | DBusHandlerResult bus_message_filter(DBusConnection *c, DBusMessage *messag
e, void *userdata); | |
| | | | |
| int bus_manager_shutdown_or_sleep_now_or_later(Manager *m, const char *unit
_name, InhibitWhat w, DBusError *error); | | int bus_manager_shutdown_or_sleep_now_or_later(Manager *m, const char *unit
_name, InhibitWhat w, DBusError *error); | |
| | | | |
| int manager_send_changed(Manager *manager, const char *properties); | | int manager_send_changed(Manager *manager, const char *properties); | |
| | | | |
| int manager_dispatch_delayed(Manager *manager); | | int manager_dispatch_delayed(Manager *manager); | |
| | | | |
|
| int manager_start_scope(Manager *manager, const char *scope, pid_t pid, con
st char *slice, const char *description, const char *after, DBusError *erro
r, char **job); | | int manager_start_scope(Manager *manager, const char *scope, pid_t pid, con
st char *slice, const char *description, const char *after, const char *kil
l_mode, DBusError *error, char **job); | |
| int manager_start_unit(Manager *manager, const char *unit, DBusError *error
, char **job); | | int manager_start_unit(Manager *manager, const char *unit, DBusError *error
, char **job); | |
| int manager_stop_unit(Manager *manager, const char *unit, DBusError *error,
char **job); | | int manager_stop_unit(Manager *manager, const char *unit, DBusError *error,
char **job); | |
| int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int
signo, DBusError *error); | | int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int
signo, DBusError *error); | |
| int manager_unit_is_active(Manager *manager, const char *unit); | | int manager_unit_is_active(Manager *manager, const char *unit); | |
| | | | |
| /* gperf lookup function */ | | /* gperf lookup function */ | |
| const struct ConfigPerfItem* logind_gperf_lookup(const char *key, unsigned
length); | | const struct ConfigPerfItem* logind_gperf_lookup(const char *key, unsigned
length); | |
| | | | |
End of changes. 2 change blocks. |
| 1 lines changed or deleted | | 3 lines changed or added | |
|
| macro.h | | macro.h | |
| | | | |
| skipping to change at line 189 | | skipping to change at line 189 | |
| #define PTR_TO_UINT64(p) ((uint64_t) ((uintptr_t) (p))) | | #define PTR_TO_UINT64(p) ((uint64_t) ((uintptr_t) (p))) | |
| #define UINT64_TO_PTR(u) ((void *) ((uintptr_t) (u))) | | #define UINT64_TO_PTR(u) ((void *) ((uintptr_t) (u))) | |
| | | | |
| #define memzero(x,l) (memset((x), 0, (l))) | | #define memzero(x,l) (memset((x), 0, (l))) | |
| #define zero(x) (memzero(&(x), sizeof(x))) | | #define zero(x) (memzero(&(x), sizeof(x))) | |
| | | | |
| #define CHAR_TO_STR(x) ((char[2]) { x, 0 }) | | #define CHAR_TO_STR(x) ((char[2]) { x, 0 }) | |
| | | | |
| #define char_array_0(x) x[sizeof(x)-1] = 0; | | #define char_array_0(x) x[sizeof(x)-1] = 0; | |
| | | | |
|
| #define hasprefix(s, prefix) (memcmp(s, prefix, strlen(prefix)) == 0) | | | |
| | | | |
| #define IOVEC_SET_STRING(i, s) \ | | #define IOVEC_SET_STRING(i, s) \ | |
| do { \ | | do { \ | |
| struct iovec *_i = &(i); \ | | struct iovec *_i = &(i); \ | |
| char *_s = (char *)(s); \ | | char *_s = (char *)(s); \ | |
| _i->iov_base = _s; \ | | _i->iov_base = _s; \ | |
| _i->iov_len = strlen(_s); \ | | _i->iov_len = strlen(_s); \ | |
| } while(false) | | } while(false) | |
| | | | |
| static inline size_t IOVEC_TOTAL_SIZE(const struct iovec *i, unsigned n) { | | static inline size_t IOVEC_TOTAL_SIZE(const struct iovec *i, unsigned n) { | |
| unsigned j; | | unsigned j; | |
| | | | |
| skipping to change at line 276 | | skipping to change at line 274 | |
| default: \ | | default: \ | |
| assert_not_reached("Unknown format string argument.
"); \ | | assert_not_reached("Unknown format string argument.
"); \ | |
| } \ | | } \ | |
| } \ | | } \ | |
| } while(false) | | } while(false) | |
| | | | |
| /* Because statfs.t_type can be int on some architecures, we have to cast | | /* Because statfs.t_type can be int on some architecures, we have to cast | |
| * the const magic to the type, otherwise the compiler warns about | | * the const magic to the type, otherwise the compiler warns about | |
| * signed/unsigned comparison, because the magic can be 32 bit unsigned. | | * signed/unsigned comparison, because the magic can be 32 bit unsigned. | |
| */ | | */ | |
|
| #define F_TYPE_CMP(a, b) (a == (typeof(a)) b) | | #define F_TYPE_EQUAL(a, b) (a == (typeof(a)) b) | |
| | | | |
| /* Returns the number of chars needed to format variables of the | | /* Returns the number of chars needed to format variables of the | |
| * specified type as a decimal string. Adds in extra space for a | | * specified type as a decimal string. Adds in extra space for a | |
| * negative '-' prefix. */ | | * negative '-' prefix. */ | |
| | | | |
| #define DECIMAL_STR_MAX(type) \ | | #define DECIMAL_STR_MAX(type) \ | |
| (1+(sizeof(type) <= 1 ? 3 : \ | | (1+(sizeof(type) <= 1 ? 3 : \ | |
| sizeof(type) <= 2 ? 5 : \ | | sizeof(type) <= 2 ? 5 : \ | |
| sizeof(type) <= 4 ? 10 : \ | | sizeof(type) <= 4 ? 10 : \ | |
| sizeof(type) <= 8 ? 20 : sizeof(int[-2*(sizeof(type) > 8)]))) | | sizeof(type) <= 8 ? 20 : sizeof(int[-2*(sizeof(type) > 8)]))) | |
| | | | |
End of changes. 2 change blocks. |
| 3 lines changed or deleted | | 1 lines changed or added | |
|
| manager.h | | manager.h | |
| | | | |
| skipping to change at line 284 | | skipping to change at line 284 | |
| | | | |
| void manager_dump_units(Manager *s, FILE *f, const char *prefix); | | void manager_dump_units(Manager *s, FILE *f, const char *prefix); | |
| void manager_dump_jobs(Manager *s, FILE *f, const char *prefix); | | void manager_dump_jobs(Manager *s, FILE *f, const char *prefix); | |
| | | | |
| void manager_clear_jobs(Manager *m); | | void manager_clear_jobs(Manager *m); | |
| | | | |
| unsigned manager_dispatch_load_queue(Manager *m); | | unsigned manager_dispatch_load_queue(Manager *m); | |
| unsigned manager_dispatch_run_queue(Manager *m); | | unsigned manager_dispatch_run_queue(Manager *m); | |
| unsigned manager_dispatch_dbus_queue(Manager *m); | | unsigned manager_dispatch_dbus_queue(Manager *m); | |
| | | | |
|
| int manager_set_default_environment(Manager *m, char **environment); | | int manager_environment_add(Manager *m, char **environment); | |
| int manager_set_default_rlimits(Manager *m, struct rlimit **default_rlimit)
; | | int manager_set_default_rlimits(Manager *m, struct rlimit **default_rlimit)
; | |
| | | | |
| int manager_loop(Manager *m); | | int manager_loop(Manager *m); | |
| | | | |
| void manager_dispatch_bus_name_owner_changed(Manager *m, const char *name,
const char* old_owner, const char *new_owner); | | void manager_dispatch_bus_name_owner_changed(Manager *m, const char *name,
const char* old_owner, const char *new_owner); | |
| void manager_dispatch_bus_query_pid_done(Manager *m, const char *name, pid_
t pid); | | void manager_dispatch_bus_query_pid_done(Manager *m, const char *name, pid_
t pid); | |
| | | | |
| int manager_open_serialization(Manager *m, FILE **_f); | | int manager_open_serialization(Manager *m, FILE **_f); | |
| | | | |
| int manager_serialize(Manager *m, FILE *f, FDSet *fds, bool switching_root)
; | | int manager_serialize(Manager *m, FILE *f, FDSet *fds, bool switching_root)
; | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| missing.h | | missing.h | |
| | | | |
| skipping to change at line 165 | | skipping to change at line 165 | |
| #endif | | #endif | |
| | | | |
| #ifndef BTRFS_IOCTL_MAGIC | | #ifndef BTRFS_IOCTL_MAGIC | |
| #define BTRFS_IOCTL_MAGIC 0x94 | | #define BTRFS_IOCTL_MAGIC 0x94 | |
| #endif | | #endif | |
| | | | |
| #ifndef BTRFS_PATH_NAME_MAX | | #ifndef BTRFS_PATH_NAME_MAX | |
| #define BTRFS_PATH_NAME_MAX 4087 | | #define BTRFS_PATH_NAME_MAX 4087 | |
| #endif | | #endif | |
| | | | |
|
| | | #ifndef BTRFS_DEVICE_PATH_NAME_MAX | |
| | | #define BTRFS_DEVICE_PATH_NAME_MAX 1024 | |
| | | #endif | |
| | | | |
| | | #ifndef BTRFS_FSID_SIZE | |
| | | #define BTRFS_FSID_SIZE 16 | |
| | | #endif | |
| | | | |
| | | #ifndef BTRFS_UUID_SIZE | |
| | | #define BTRFS_UUID_SIZE 16 | |
| | | #endif | |
| | | | |
| | | #ifndef HAVE_LINUX_BTRFS_H | |
| struct btrfs_ioctl_vol_args { | | struct btrfs_ioctl_vol_args { | |
| int64_t fd; | | int64_t fd; | |
| char name[BTRFS_PATH_NAME_MAX + 1]; | | char name[BTRFS_PATH_NAME_MAX + 1]; | |
| }; | | }; | |
| | | | |
|
| | | struct btrfs_ioctl_dev_info_args { | |
| | | uint64_t devid; /* in/out */ | |
| | | uint8_t uuid[BTRFS_UUID_SIZE]; /* in/out */ | |
| | | uint64_t bytes_used; /* out */ | |
| | | uint64_t total_bytes; /* out */ | |
| | | uint64_t unused[379]; /* pad to 4k */ | |
| | | char path[BTRFS_DEVICE_PATH_NAME_MAX]; /* out */ | |
| | | }; | |
| | | | |
| | | struct btrfs_ioctl_fs_info_args { | |
| | | uint64_t max_id; /* out */ | |
| | | uint64_t num_devices; /* out */ | |
| | | uint8_t fsid[BTRFS_FSID_SIZE]; /* out */ | |
| | | uint64_t reserved[124]; /* pad to 1k */ | |
| | | }; | |
| | | #endif | |
| | | | |
| #ifndef BTRFS_IOC_DEFRAG | | #ifndef BTRFS_IOC_DEFRAG | |
| #define BTRFS_IOC_DEFRAG _IOW(BTRFS_IOCTL_MAGIC, 2, struct btrfs_ioctl_vol_
args) | | #define BTRFS_IOC_DEFRAG _IOW(BTRFS_IOCTL_MAGIC, 2, struct btrfs_ioctl_vol_
args) | |
| #endif | | #endif | |
| | | | |
|
| | | #ifndef BTRFS_IOC_DEV_INFO | |
| | | #define BTRFS_IOC_DEV_INFO _IOWR(BTRFS_IOCTL_MAGIC, 30, \ | |
| | | struct btrfs_ioctl_dev_info_args) | |
| | | #endif | |
| | | | |
| | | #ifndef BTRFS_IOC_FS_INFO | |
| | | #define BTRFS_IOC_FS_INFO _IOR(BTRFS_IOCTL_MAGIC, 31, \ | |
| | | struct btrfs_ioctl_fs_info_args) | |
| | | #endif | |
| | | | |
| #ifndef BTRFS_SUPER_MAGIC | | #ifndef BTRFS_SUPER_MAGIC | |
| #define BTRFS_SUPER_MAGIC 0x9123683E | | #define BTRFS_SUPER_MAGIC 0x9123683E | |
| #endif | | #endif | |
| | | | |
| #ifndef MS_MOVE | | #ifndef MS_MOVE | |
| #define MS_MOVE 8192 | | #define MS_MOVE 8192 | |
| #endif | | #endif | |
| | | | |
| #ifndef MS_PRIVATE | | #ifndef MS_PRIVATE | |
| #define MS_PRIVATE (1 << 18) | | #define MS_PRIVATE (1 << 18) | |
| | | | |
End of changes. 3 change blocks. |
| 0 lines changed or deleted | | 40 lines changed or added | |
|
| mkdir.h | | mkdir.h | |
| /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ | | /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ | |
| | | | |
| #ifndef foomkdirhfoo | | #ifndef foomkdirhfoo | |
| #define foomkdirhfoo | | #define foomkdirhfoo | |
| | | | |
| /*** | | /*** | |
| This file is part of systemd. | | This file is part of systemd. | |
| | | | |
| Copyright 2010 Lennart Poettering | | Copyright 2010 Lennart Poettering | |
|
| | | Copyright 2013 Kay Sievers | |
| | | | |
| systemd is free software; you can redistribute it and/or modify it | | systemd is free software; you can redistribute it and/or modify it | |
| under the terms of the GNU Lesser General Public License as published by | | under the terms of the GNU Lesser General Public License as published by | |
| the Free Software Foundation; either version 2.1 of the License, or | | the Free Software Foundation; either version 2.1 of the License, or | |
| (at your option) any later version. | | (at your option) any later version. | |
| | | | |
| systemd is distributed in the hope that it will be useful, but | | systemd is distributed in the hope that it will be useful, but | |
| WITHOUT ANY WARRANTY; without even the implied warranty of | | WITHOUT ANY WARRANTY; without even the implied warranty of | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| Lesser General Public License for more details. | | Lesser General Public License for more details. | |
| | | | |
| You should have received a copy of the GNU Lesser General Public License | | You should have received a copy of the GNU Lesser General Public License | |
| along with systemd; If not, see <http://www.gnu.org/licenses/>. | | along with systemd; If not, see <http://www.gnu.org/licenses/>. | |
| ***/ | | ***/ | |
| | | | |
| #include <sys/types.h> | | #include <sys/types.h> | |
| | | | |
|
| int mkdir_label(const char *path, mode_t mode); | | | |
| | | | |
| int mkdir_safe(const char *path, mode_t mode, uid_t uid, gid_t gid); | | int mkdir_safe(const char *path, mode_t mode, uid_t uid, gid_t gid); | |
|
| int mkdir_safe_label(const char *path, mode_t mode, uid_t uid, gid_t gid); | | | |
| | | | |
| int mkdir_parents(const char *path, mode_t mode); | | int mkdir_parents(const char *path, mode_t mode); | |
|
| int mkdir_parents_label(const char *path, mode_t mode); | | | |
| int mkdir_parents_prefix(const char *prefix, const char *path, mode_t mode) | | | |
| ; | | | |
| | | | |
| int mkdir_p(const char *path, mode_t mode); | | int mkdir_p(const char *path, mode_t mode); | |
|
| int mkdir_p_label(const char *path, mode_t mode); | | | |
| int mkdir_p_prefix(const char *prefix, const char *path, mode_t mode); | | int mkdir_p_prefix(const char *prefix, const char *path, mode_t mode); | |
| | | | |
|
| | | /* selinux versions */ | |
| | | int mkdir_label(const char *path, mode_t mode); | |
| | | int mkdir_safe_label(const char *path, mode_t mode, uid_t uid, gid_t gid); | |
| | | int mkdir_parents_label(const char *path, mode_t mode); | |
| | | int mkdir_p_label(const char *path, mode_t mode); | |
| | | int mkdir_parents_prefix_label(const char *prefix, const char *path, mode_t | |
| | | mode); | |
| | | | |
| | | /* internally used */ | |
| | | typedef int (*mkdir_func_t)(const char *pathname, mode_t mode); | |
| | | int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid | |
| | | , mkdir_func_t _mkdir); | |
| | | int mkdir_parents_internal(const char *prefix, const char *path, mode_t mod | |
| | | e, mkdir_func_t _mkdir); | |
| | | int mkdir_p_internal(const char *prefix, const char *path, mode_t mode, mkd | |
| | | ir_func_t _mkdir); | |
| #endif | | #endif | |
| | | | |
End of changes. 6 change blocks. |
| 9 lines changed or deleted | | 17 lines changed or added | |
|
| path-util.h | | path-util.h | |
| | | | |
| skipping to change at line 28 | | skipping to change at line 28 | |
| Lesser General Public License for more details. | | Lesser General Public License for more details. | |
| | | | |
| You should have received a copy of the GNU Lesser General Public License | | You should have received a copy of the GNU Lesser General Public License | |
| along with systemd; If not, see <http://www.gnu.org/licenses/>. | | along with systemd; If not, see <http://www.gnu.org/licenses/>. | |
| ***/ | | ***/ | |
| | | | |
| #include <stdbool.h> | | #include <stdbool.h> | |
| | | | |
| #include "macro.h" | | #include "macro.h" | |
| | | | |
|
| | | #ifdef HAVE_SPLIT_USR | |
| | | # define DEFAULT_PATH "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/ | |
| | | sbin:/bin" | |
| | | #else | |
| | | # define DEFAULT_PATH "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin" | |
| | | #endif | |
| | | | |
| bool is_path(const char *p) _pure_; | | bool is_path(const char *p) _pure_; | |
| char** path_split_and_make_absolute(const char *p); | | char** path_split_and_make_absolute(const char *p); | |
| char* path_get_file_name(const char *p) _pure_; | | char* path_get_file_name(const char *p) _pure_; | |
| int path_get_parent(const char *path, char **parent); | | int path_get_parent(const char *path, char **parent); | |
| bool path_is_absolute(const char *p) _pure_; | | bool path_is_absolute(const char *p) _pure_; | |
| char* path_make_absolute(const char *p, const char *prefix); | | char* path_make_absolute(const char *p, const char *prefix); | |
| char* path_make_absolute_cwd(const char *p); | | char* path_make_absolute_cwd(const char *p); | |
| char* path_kill_slashes(char *path); | | char* path_kill_slashes(char *path); | |
| char* path_startswith(const char *path, const char *prefix) _pure_; | | char* path_startswith(const char *path, const char *prefix) _pure_; | |
| bool path_equal(const char *a, const char *b) _pure_; | | bool path_equal(const char *a, const char *b) _pure_; | |
| | | | |
| char** path_strv_make_absolute_cwd(char **l); | | char** path_strv_make_absolute_cwd(char **l); | |
| char** path_strv_canonicalize(char **l); | | char** path_strv_canonicalize(char **l); | |
| char** path_strv_canonicalize_uniq(char **l); | | char** path_strv_canonicalize_uniq(char **l); | |
| | | | |
| int path_is_mount_point(const char *path, bool allow_symlink); | | int path_is_mount_point(const char *path, bool allow_symlink); | |
| int path_is_read_only_fs(const char *path); | | int path_is_read_only_fs(const char *path); | |
| int path_is_os_tree(const char *path); | | int path_is_os_tree(const char *path); | |
|
| | | | |
| | | int find_binary(const char *name, char **filename); | |
| | | | |
End of changes. 2 change blocks. |
| 0 lines changed or deleted | | 7 lines changed or added | |
|
| sd-login.h | | sd-login.h | |
| | | | |
| skipping to change at line 127 | | skipping to change at line 127 | |
| | | | |
| /* Determine the class of this session, i.e. one of "user", "greeter" or "l
ock-screen". */ | | /* Determine the class of this session, i.e. one of "user", "greeter" or "l
ock-screen". */ | |
| int sd_session_get_class(const char *session, char **clazz); | | int sd_session_get_class(const char *session, char **clazz); | |
| | | | |
| /* Determine the X11 display of this session. */ | | /* Determine the X11 display of this session. */ | |
| int sd_session_get_display(const char *session, char **display); | | int sd_session_get_display(const char *session, char **display); | |
| | | | |
| /* Determine the TTY of this session. */ | | /* Determine the TTY of this session. */ | |
| int sd_session_get_tty(const char *session, char **display); | | int sd_session_get_tty(const char *session, char **display); | |
| | | | |
|
| | | /* Determine the VT number of this session. */ | |
| | | int sd_session_get_vt(const char *session, unsigned *vtnr); | |
| | | | |
| /* Return active session and user of seat */ | | /* Return active session and user of seat */ | |
| int sd_seat_get_active(const char *seat, char **session, uid_t *uid); | | int sd_seat_get_active(const char *seat, char **session, uid_t *uid); | |
| | | | |
| /* Return sessions and users on seat. Returns number of sessions as | | /* Return sessions and users on seat. Returns number of sessions as | |
| * return value. If sessions is NULL returns only the number of | | * return value. If sessions is NULL returns only the number of | |
| * sessions. */ | | * sessions. */ | |
| int sd_seat_get_sessions(const char *seat, char ***sessions, uid_t **uid, u
nsigned *n_uids); | | int sd_seat_get_sessions(const char *seat, char ***sessions, uid_t **uid, u
nsigned *n_uids); | |
| | | | |
| /* Return whether the seat is multi-session capable */ | | /* Return whether the seat is multi-session capable */ | |
| int sd_seat_can_multi_session(const char *seat); | | int sd_seat_can_multi_session(const char *seat); | |
| | | | |
End of changes. 1 change blocks. |
| 0 lines changed or deleted | | 3 lines changed or added | |
|
| selinux-access.h | | selinux-access.h | |
| /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ | | /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ | |
| | | | |
| #pragma once | | #pragma once | |
| | | | |
| /*** | | /*** | |
| This file is part of systemd. | | This file is part of systemd. | |
| | | | |
| Copyright 2012 Dan Walsh | | Copyright 2012 Dan Walsh | |
| | | | |
| systemd is free software; you can redistribute it and/or modify it | | systemd is free software; you can redistribute it and/or modify it | |
|
| under the terms of the GNU General Public License as published by | | under the terms of the GNU Lesser General Public License as published by | |
| the Free Software Foundation; either version 2 of the License, or | | the Free Software Foundation; either version 2.1 of the License, or | |
| (at your option) any later version. | | (at your option) any later version. | |
| | | | |
| systemd is distributed in the hope that it will be useful, but | | systemd is distributed in the hope that it will be useful, but | |
| WITHOUT ANY WARRANTY; without even the implied warranty of | | WITHOUT ANY WARRANTY; without even the implied warranty of | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
|
| General Public License for more details. | | Lesser General Public License for more details. | |
| | | | |
|
| You should have received a copy of the GNU General Public License | | You should have received a copy of the GNU Lesser General Public License | |
| along with systemd; If not, see <http://www.gnu.org/licenses/>. | | along with systemd; If not, see <http://www.gnu.org/licenses/>. | |
| ***/ | | ***/ | |
| | | | |
| #include <dbus.h> | | #include <dbus.h> | |
| | | | |
| void selinux_access_free(void); | | void selinux_access_free(void); | |
| | | | |
| int selinux_access_check(DBusConnection *connection, DBusMessage *message,
const char *path, const char *permission, DBusError *error); | | int selinux_access_check(DBusConnection *connection, DBusMessage *message,
const char *path, const char *permission, DBusError *error); | |
| | | | |
| #ifdef HAVE_SELINUX | | #ifdef HAVE_SELINUX | |
| | | | |
End of changes. 3 change blocks. |
| 4 lines changed or deleted | | 4 lines changed or added | |
|
| service.h | | service.h | |
| | | | |
| skipping to change at line 57 | | skipping to change at line 57 | |
| SERVICE_FAILED, | | SERVICE_FAILED, | |
| SERVICE_AUTO_RESTART, | | SERVICE_AUTO_RESTART, | |
| _SERVICE_STATE_MAX, | | _SERVICE_STATE_MAX, | |
| _SERVICE_STATE_INVALID = -1 | | _SERVICE_STATE_INVALID = -1 | |
| } ServiceState; | | } ServiceState; | |
| | | | |
| typedef enum ServiceRestart { | | typedef enum ServiceRestart { | |
| SERVICE_RESTART_NO, | | SERVICE_RESTART_NO, | |
| SERVICE_RESTART_ON_SUCCESS, | | SERVICE_RESTART_ON_SUCCESS, | |
| SERVICE_RESTART_ON_FAILURE, | | SERVICE_RESTART_ON_FAILURE, | |
|
| | | SERVICE_RESTART_ON_WATCHDOG, | |
| SERVICE_RESTART_ON_ABORT, | | SERVICE_RESTART_ON_ABORT, | |
| SERVICE_RESTART_ALWAYS, | | SERVICE_RESTART_ALWAYS, | |
| _SERVICE_RESTART_MAX, | | _SERVICE_RESTART_MAX, | |
| _SERVICE_RESTART_INVALID = -1 | | _SERVICE_RESTART_INVALID = -1 | |
| } ServiceRestart; | | } ServiceRestart; | |
| | | | |
| typedef enum ServiceType { | | typedef enum ServiceType { | |
| SERVICE_SIMPLE, /* we fork and go on right-away (i.e. modern sock
et activated daemons) */ | | SERVICE_SIMPLE, /* we fork and go on right-away (i.e. modern sock
et activated daemons) */ | |
| SERVICE_FORKING, /* forks by itself (i.e. traditional daemons) */ | | SERVICE_FORKING, /* forks by itself (i.e. traditional daemons) */ | |
| SERVICE_ONESHOT, /* we fork and wait until the program finishes (i
.e. programs like fsck which run and need to finish before we continue) */ | | SERVICE_ONESHOT, /* we fork and wait until the program finishes (i
.e. programs like fsck which run and need to finish before we continue) */ | |
| | | | |
End of changes. 1 change blocks. |
| 0 lines changed or deleted | | 1 lines changed or added | |
|
| socket.h | | socket.h | |
| | | | |
| skipping to change at line 159 | | skipping to change at line 159 | |
| long mq_msgsize; | | long mq_msgsize; | |
| | | | |
| char *smack; | | char *smack; | |
| char *smack_ip_in; | | char *smack_ip_in; | |
| char *smack_ip_out; | | char *smack_ip_out; | |
| }; | | }; | |
| | | | |
| /* Called from the service code when collecting fds */ | | /* Called from the service code when collecting fds */ | |
| int socket_collect_fds(Socket *s, int **fds, unsigned *n_fds); | | int socket_collect_fds(Socket *s, int **fds, unsigned *n_fds); | |
| | | | |
|
| /* Called from the service when it shut down */ | | | |
| void socket_notify_service_dead(Socket *s, bool failed_permanent); | | | |
| | | | |
| /* Called from the mount code figure out if a mount is a dependency of | | /* Called from the mount code figure out if a mount is a dependency of | |
| * any of the sockets of this socket */ | | * any of the sockets of this socket */ | |
| int socket_add_one_mount_link(Socket *s, Mount *m); | | int socket_add_one_mount_link(Socket *s, Mount *m); | |
| | | | |
| /* Called from the service code when a per-connection service ended */ | | /* Called from the service code when a per-connection service ended */ | |
| void socket_connection_unref(Socket *s); | | void socket_connection_unref(Socket *s); | |
| | | | |
| void socket_free_ports(Socket *s); | | void socket_free_ports(Socket *s); | |
| | | | |
| extern const UnitVTable socket_vtable; | | extern const UnitVTable socket_vtable; | |
| | | | |
End of changes. 1 change blocks. |
| 3 lines changed or deleted | | 0 lines changed or added | |
|
| strv.h | | strv.h | |
| | | | |
| skipping to change at line 45 | | skipping to change at line 45 | |
| } | | } | |
| | | | |
| #define _cleanup_strv_free_ _cleanup_(strv_freep) | | #define _cleanup_strv_free_ _cleanup_(strv_freep) | |
| | | | |
| char **strv_copy(char * const *l); | | char **strv_copy(char * const *l); | |
| unsigned strv_length(char * const *l) _pure_; | | unsigned strv_length(char * const *l) _pure_; | |
| | | | |
| char **strv_merge(char **a, char **b); | | char **strv_merge(char **a, char **b); | |
| char **strv_merge_concat(char **a, char **b, const char *suffix); | | char **strv_merge_concat(char **a, char **b, const char *suffix); | |
| char **strv_append(char **l, const char *s); | | char **strv_append(char **l, const char *s); | |
|
| | | char **strv_appendf(char **l, const char *format, ...) _printf_attr_(2, 3); | |
| int strv_extend(char ***l, const char *value); | | int strv_extend(char ***l, const char *value); | |
| int strv_push(char ***l, char *value); | | int strv_push(char ***l, char *value); | |
| | | | |
| char **strv_remove(char **l, const char *s); | | char **strv_remove(char **l, const char *s); | |
| char **strv_remove_prefix(char **l, const char *s); | | char **strv_remove_prefix(char **l, const char *s); | |
| char **strv_uniq(char **l); | | char **strv_uniq(char **l); | |
| | | | |
| #define strv_contains(l, s) (!!strv_find((l), (s))) | | #define strv_contains(l, s) (!!strv_find((l), (s))) | |
| | | | |
| char **strv_new(const char *x, ...) _sentinel_; | | char **strv_new(const char *x, ...) _sentinel_; | |
| | | | |
| skipping to change at line 70 | | skipping to change at line 71 | |
| | | | |
| static inline bool strv_isempty(char * const *l) { | | static inline bool strv_isempty(char * const *l) { | |
| return !l || !*l; | | return !l || !*l; | |
| } | | } | |
| | | | |
| char **strv_split(const char *s, const char *separator); | | char **strv_split(const char *s, const char *separator); | |
| char **strv_split_quoted(const char *s); | | char **strv_split_quoted(const char *s); | |
| char **strv_split_newlines(const char *s); | | char **strv_split_newlines(const char *s); | |
| | | | |
| char *strv_join(char **l, const char *separator); | | char *strv_join(char **l, const char *separator); | |
|
| | | char *strv_join_quoted(char **l); | |
| | | | |
| char **strv_parse_nulstr(const char *s, size_t l); | | char **strv_parse_nulstr(const char *s, size_t l); | |
| char **strv_split_nulstr(const char *s); | | char **strv_split_nulstr(const char *s); | |
| | | | |
| bool strv_overlap(char **a, char **b) _pure_; | | bool strv_overlap(char **a, char **b) _pure_; | |
| | | | |
| #define STRV_FOREACH(s, l) \ | | #define STRV_FOREACH(s, l) \ | |
| for ((s) = (l); (s) && *(s); (s)++) | | for ((s) = (l); (s) && *(s); (s)++) | |
| | | | |
| #define STRV_FOREACH_BACKWARDS(s, l) \ | | #define STRV_FOREACH_BACKWARDS(s, l) \ | |
| | | | |
End of changes. 2 change blocks. |
| 0 lines changed or deleted | | 2 lines changed or added | |
|
| time-util.h | | time-util.h | |
| | | | |
| skipping to change at line 76 | | skipping to change at line 76 | |
| | | | |
| #define dual_timestamp_is_set(ts) ((ts)->realtime > 0) | | #define dual_timestamp_is_set(ts) ((ts)->realtime > 0) | |
| | | | |
| usec_t timespec_load(const struct timespec *ts) _pure_; | | usec_t timespec_load(const struct timespec *ts) _pure_; | |
| struct timespec *timespec_store(struct timespec *ts, usec_t u); | | struct timespec *timespec_store(struct timespec *ts, usec_t u); | |
| | | | |
| usec_t timeval_load(const struct timeval *tv) _pure_; | | usec_t timeval_load(const struct timeval *tv) _pure_; | |
| struct timeval *timeval_store(struct timeval *tv, usec_t u); | | struct timeval *timeval_store(struct timeval *tv, usec_t u); | |
| | | | |
| char *format_timestamp(char *buf, size_t l, usec_t t); | | char *format_timestamp(char *buf, size_t l, usec_t t); | |
|
| | | char *format_timestamp_us(char *buf, size_t l, usec_t t); | |
| char *format_timestamp_relative(char *buf, size_t l, usec_t t); | | char *format_timestamp_relative(char *buf, size_t l, usec_t t); | |
| char *format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy); | | char *format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy); | |
| | | | |
| void dual_timestamp_serialize(FILE *f, const char *name, dual_timestamp *t)
; | | void dual_timestamp_serialize(FILE *f, const char *name, dual_timestamp *t)
; | |
| void dual_timestamp_deserialize(const char *value, dual_timestamp *t); | | void dual_timestamp_deserialize(const char *value, dual_timestamp *t); | |
| | | | |
| int parse_timestamp(const char *t, usec_t *usec); | | int parse_timestamp(const char *t, usec_t *usec); | |
| | | | |
| int parse_sec(const char *t, usec_t *usec); | | int parse_sec(const char *t, usec_t *usec); | |
| int parse_nsec(const char *t, nsec_t *nsec); | | int parse_nsec(const char *t, nsec_t *nsec); | |
| | | | |
End of changes. 1 change blocks. |
| 0 lines changed or deleted | | 1 lines changed or added | |
|
| util.h | | util.h | |
| | | | |
| skipping to change at line 109 | | skipping to change at line 109 | |
| } | | } | |
| | | | |
| static inline const char *strna(const char *s) { | | static inline const char *strna(const char *s) { | |
| return s ? s : "n/a"; | | return s ? s : "n/a"; | |
| } | | } | |
| | | | |
| static inline bool isempty(const char *p) { | | static inline bool isempty(const char *p) { | |
| return !p || !p[0]; | | return !p || !p[0]; | |
| } | | } | |
| | | | |
|
| | | static inline const char *startswith(const char *s, const char *prefix) { | |
| | | if (strncmp(s, prefix, strlen(prefix)) == 0) | |
| | | return s + strlen(prefix); | |
| | | return NULL; | |
| | | } | |
| | | | |
| | | static inline const char *startswith_no_case(const char *s, const char *pre | |
| | | fix) { | |
| | | if (strncasecmp(s, prefix, strlen(prefix)) == 0) | |
| | | return s + strlen(prefix); | |
| | | return NULL; | |
| | | } | |
| | | | |
| char *endswith(const char *s, const char *postfix) _pure_; | | char *endswith(const char *s, const char *postfix) _pure_; | |
|
| char *startswith(const char *s, const char *prefix) _pure_; | | | |
| char *startswith_no_case(const char *s, const char *prefix) _pure_; | | | |
| | | | |
| bool first_word(const char *s, const char *word) _pure_; | | bool first_word(const char *s, const char *word) _pure_; | |
| | | | |
| int close_nointr(int fd); | | int close_nointr(int fd); | |
| void close_nointr_nofail(int fd); | | void close_nointr_nofail(int fd); | |
| void close_many(const int fds[], unsigned n_fd); | | void close_many(const int fds[], unsigned n_fd); | |
| | | | |
| int parse_boolean(const char *v) _pure_; | | int parse_boolean(const char *v) _pure_; | |
| int parse_bytes(const char *t, off_t *bytes); | | int parse_bytes(const char *t, off_t *bytes); | |
| int parse_pid(const char *s, pid_t* ret_pid); | | int parse_pid(const char *s, pid_t* ret_pid); | |
| | | | |
| skipping to change at line 377 | | skipping to change at line 387 | |
| int status_welcome(void); | | int status_welcome(void); | |
| | | | |
| int fd_columns(int fd); | | int fd_columns(int fd); | |
| unsigned columns(void); | | unsigned columns(void); | |
| int fd_lines(int fd); | | int fd_lines(int fd); | |
| unsigned lines(void); | | unsigned lines(void); | |
| void columns_lines_cache_reset(int _unused_ signum); | | void columns_lines_cache_reset(int _unused_ signum); | |
| | | | |
| bool on_tty(void); | | bool on_tty(void); | |
| | | | |
|
| | | static inline const char *ansi_highlight(void) { | |
| | | return on_tty() ? ANSI_HIGHLIGHT_ON : ""; | |
| | | } | |
| | | | |
| | | static inline const char *ansi_highlight_red(void) { | |
| | | return on_tty() ? ANSI_HIGHLIGHT_RED_ON : ""; | |
| | | } | |
| | | | |
| | | static inline const char *ansi_highlight_green(void) { | |
| | | return on_tty() ? ANSI_HIGHLIGHT_GREEN_ON : ""; | |
| | | } | |
| | | | |
| | | static inline const char *ansi_highlight_off(void) { | |
| | | return on_tty() ? ANSI_HIGHLIGHT_OFF : ""; | |
| | | } | |
| | | | |
| int running_in_chroot(void); | | int running_in_chroot(void); | |
| | | | |
| char *ellipsize(const char *s, size_t length, unsigned percent); | | char *ellipsize(const char *s, size_t length, unsigned percent); | |
| char *ellipsize_mem(const char *s, size_t old_length, size_t new_length, un
signed percent); | | char *ellipsize_mem(const char *s, size_t old_length, size_t new_length, un
signed percent); | |
| | | | |
| int touch(const char *path); | | int touch(const char *path); | |
| | | | |
| char *unquote(const char *s, const char *quotes); | | char *unquote(const char *s, const char *quotes); | |
| char *normalize_env_assignment(const char *s); | | char *normalize_env_assignment(const char *s); | |
| | | | |
| | | | |
End of changes. 3 change blocks. |
| 2 lines changed or deleted | | 29 lines changed or added | |
|