1. 17 Mar, 2017 1 commit
  2. 17 Jun, 2016 1 commit
  3. 03 Mar, 2016 1 commit
  4. 19 Feb, 2016 1 commit
    • Thomas Haller's avatar
      all: cleanup includes and let "nm-default.h" include "config.h" · 8bace23b
      Thomas Haller authored
      - All internal source files (except "examples", which are not internal)
        should include "config.h" first. As also all internal source
        files should include "nm-default.h", let "config.h" be included
        by "nm-default.h" and include "nm-default.h" as first in every
        source file.
        We already wanted to include "nm-default.h" before other headers
        because it might contains some fixes (like "nm-glib.h" compatibility)
        that is required first.
      - After including "nm-default.h", we optinally allow for including the
        corresponding header file for the source file at hand. The idea
        is to ensure that each header file is self contained.
      - Don't include "config.h" or "nm-default.h" in any header file
        (except "nm-sd-adapt.h"). Public headers anyway must not include
        these headers, and internal headers are never included after
        "nm-default.h", as of the first previous point.
      - Include all internal headers with quotes instead of angle brackets.
        In practice it doesn't matter, because in our public headers we must
        include other headers with angle brackets. As we use our public
        headers also to compile our interal source files, effectively the
        result must be the same. Still do it for consistency.
      - Except for <config.h> itself. Include it with angle brackets as suggested by
  5. 14 Feb, 2016 1 commit
  6. 12 Feb, 2016 1 commit
    • Thomas Haller's avatar
      build: cleanup default includes · 2c2d9d2e
      Thomas Haller authored
      - "gsystem-local-alloc.h" and <gio/gio.h> are already included via
        "nm-default.h". No need to include them separately.
      - include "nm-macros-internal.h" via "nm-default.h" and drop all
        explict includes.
      - in the modified files, ensure that we always include "config.h"
        and "nm-default.h" first. As second, include the header file
        for the current source file (if applicable). Then follow external
        includes and finally internal nm includes.
      - include nm headers inside source code files with quotes
      - internal header files don't need to include default headers.
        They can savely assume that "nm-default.h" is already included
        and with it glib, nm-glib.h, nm-macros-internal.h, etc.
  7. 05 Aug, 2015 1 commit
  8. 01 Jun, 2015 1 commit
    • Thomas Haller's avatar
      build: rename file "include/nm-utils-internal.h" to "nm-macros-internal.h" · b8b1a01d
      Thomas Haller authored
      We already have "nm-utils*.h" and "NetworkManagerUtils.h" headers. Rename
      "include/nm-utils-internal.h" to "nm-macros-internal.h". I think that
      name is better, because this file is header-only, internal, and
      Also, it will never contain non-header-only declarations because
      there is no backing object file under "include/".
      It will only contain macros and inline functions.
  9. 12 Mar, 2015 3 commits
    • Thomas Haller's avatar
      libnm: only call strlen() once in NMSetting8021x:path_to_scheme_value() · 11371b54
      Thomas Haller authored
      Also assert that path is not empty.
    • Thomas Haller's avatar
      libnm: ensure valid blob for nm_setting_802_1x_set_*_cert() · cda7b158
      Thomas Haller authored
      A valid blob cannot start with "file://", otherwise it would
      break the implementation of the certificate properties in
      NMSetting8021x. Simply reject every blob in nm_setting_802_1x_set_ca_cert()
      et al. that is not valid according to get_cert_scheme().
    • Thomas Haller's avatar
      libnm: combine get_cert_scheme() and verify_cert() and ensure valid paths for NMSetting8021x · e59e68c5
      Thomas Haller authored
      get_cert_scheme() would return PATH scheme for binary data that
      later will be rejected by verify_cert(). Even worse, get_cert_scheme()
      would not check whether the path is NUL terminated, hence the following
      can crash for an invalid connection:
        if (nm_setting_802_1x_get_ca_cert_scheme (s_8021x) == NM_SETTING_802_1X_CK_SCHEME_PATH)
            g_print ("path: %s", nm_setting_802_1x_get_ca_cert_path (s_8021x))
      Combine the two functions so that already get_cert_scheme() does
      the same validation as verify_cert().
      Also change behavior and be more strict about invalid paths:
       - Now, the value is considered a PATH candidate if it starts with "file://",
         (sans NUL character).
         A change is that before, the "file://" (without NUL) would have
         been treated as BLOB, now it is an invalid PATH (UNKNOWN).
       - If the binary starts with "file://" it is considered as PATH but it
         is only valid, if all the fllowing is true:
         (a) the last character must be NUL.
         (b) there is no other intermediate NUL character.
             Before, an intermediate NUL character would have been accepted
             and the remainder would be ignored.
         (c) there is at least one non-NUL character after "file://".
         (d) the string must be fully valid utf8.
         The conditions (b) and (c) are new and some invalid(?) paths
         might no longer validate.
         Checking (d) moved from verify_cert() to get_cert_scheme().
         As set_cert_prop_helper() already called verify_cert(), this
         causes no additional change beyond (b).
  10. 18 Dec, 2014 1 commit
  11. 19 Nov, 2014 1 commit
    • Dan Winship's avatar
      libnm, libnm-util: move settings doc generation to libnm-core · c1448698
      Dan Winship authored
      Move the settings/plugins doc generation from libnm-util to
      libnm-core, since libnm-util isn't being updated for all new
      With this commit, the keyfile and ifcfg-rh documentation is basically
      unchanged, except that deprecated properties are now gone, and new
      properties have been added, and the sections are in a different order.
      (generate-plugin-docs.pl just outputs the settings in Makefile order,
      and they were unsorted in libnm-util, but are sorted in libnm-core).
      The settings documentation used for nm-settings.5, the D-Bus API docs,
      and the nmcli help is changed a bit more at this point, and mostly for
      the worse, since the libnm-core setting properties don't match up with
      the D-Bus API as well as the libnm-util ones do. To be fixed...
      (I also removed the "plugins docs" line in each plugin docs comment
      block while moving them, since those blocks will be used for more than
      just plugins soon, and it's sort of obvious anyway.)
  12. 13 Nov, 2014 2 commits
    • Dan Winship's avatar
      libnm*: fix library gettext usage · 53f5e9af
      Dan Winship authored
      Libraries need to include <gi18n-lib.h>, not <gi18n.h>, so that _()
      will get defined to "dgettext (GETTEXT_DOMAIN, string)" rather than
      "gettext (string)" (which will use the program's default domain, which
      works fine for programs in the NetworkManager tree, but not for
      external users). Likewise, we need to call bindtextdomain() so that
      gettext can find the translations if the library is installed in a
      different prefix from the program using it (and
      bind_textdomain_codeset(), so it will know the translations are in
      UTF-8 even if the locale isn't).
      (The fact that no one noticed this was broken before is because the
      libraries didn't really start returning useful translated strings much
      until 0.9.10, and none of the out-of-tree clients have been updated to
      actually show those strings to users yet.)
    • Dan Winship's avatar
      all: consistently include config.h · 3bfb163a
      Dan Winship authored
      config.h should be included from every .c file, and it should be
      included before any other include. Fix that.
      (As a side effect of how I did this, this also changes us to
      consistently use "config.h" rather than <config.h>. To the extent that
      it matters [which is not much], quotes are more correct anyway, since
      we're talking about a file in our own build tree, not a system
  13. 29 Aug, 2014 1 commit
  14. 01 Aug, 2014 1 commit
    • Thomas Haller's avatar
      libnm-util: fix warning converting between enum types in nm-setting-8021x.c · 22ca4690
      Thomas Haller authored
      clang warns:
          make[4]: Entering directory `./NetworkManager/libnm-util'
            CC       nm-setting-8021x.lo
          nm-setting-8021x.c:1824:17: error: implicit conversion from enumeration type 'NMCryptoFileFormat' to different enumeration type 'NMSetting8021xCKFormat' [-Werror,-Wenum-conversion]
                          *out_format = format;
                                      ~ ^~~~~~
          nm-setting-8021x.c:2135:17: error: implicit conversion from enumeration type 'NMCryptoFileFormat' to different enumeration type 'NMSetting8021xCKFormat' [-Werror,-Wenum-conversion]
                          *out_format = format;
                                      ~ ^~~~~~
      Signed-off-by: Thomas Haller's avatarThomas Haller <thaller@redhat.com>
  15. 15 Jul, 2014 2 commits
    • Dan Winship's avatar
      libnm-util, libnm-glib: whitespace fixes · 2570c5a1
      Dan Winship authored
      Fix indentation, kill trailing whitespace, split some long lines.
    • Dan Winship's avatar
      libnm-util, libnm-glib: standardize copyright/license headers · cb7e1893
      Dan Winship authored
      - Remove list of authors from files that had them; these serve no
        purpose except to quickly get out of date (and were only used in
        libnm-util and not libnm-glib anyway).
      - Just say "Copyright", not "(C) Copyright" or "Copyright (C)"
      - Put copyright statement after the license, not before
      - Remove "NetworkManager - Network link manager" from the few files
        that contained it, and "libnm_glib -- Access network status &
        information from glib applications" from the many files that
        contained it.
      - Remove vim modeline from nm-device-olpc-mesh.[ch], add emacs modeline
        to files that were missing it.
  16. 19 Jun, 2014 4 commits
    • Dan Winship's avatar
      libnm-util: remove NMSetting* GParamSpec docs · cdc15cb2
      Dan Winship authored
      Remove all the GParamSpec docs, since everything now uses the gtk-doc
      docs instead, so there's no point in having two copies of each (which
      are often out of sync anyway).
      Since we're touching so many lines anyway, also fix up the indentation
      of the remaining property-installing lines, and add
      G_PARAM_STATIC_STRINGS to each paramspec (so the nick strings don't
      get strduped). Also, be consistent about starting a new line between
      "g_object_class_install_property" and its opening parenthesis.
    • Dan Winship's avatar
      libnm-util: various NMSetting* property doc fixes/improvements · e8577083
      Dan Winship authored
      Fix up various issues with the docs for the NMSetting properties, and
      pull in text from the GParamSpec docs where the GParamSpec docs were
      better (or contained information that is necessary in the context of
      Also, consistently wrap all of the doc comments to the same width (80
    • Dan Winship's avatar
      libnm-util: fix gtk-doc bugs in NMSetting* properties · 9de24b16
      Dan Winship authored
      Fix misused gtk-doc annotations and incorrectly-identified properties.
      In particular, the upcoming introspection-based generate-settings-spec
      expands macro and enum values, so if you use '%' where you should have
      used '#', it will fail to find an expansion, and error out.
    • Dan Winship's avatar
      libnm-util, libnm-glib: be consistent about "Wi-Fi", "Ethernet", "InfiniBand" in docs · 8487a449
      Dan Winship authored
      We made the UIs consistent last year, but missed the documentation.
      Fix the docs to also consistently use "Wi-Fi" rather than "WiFi",
      "Wifi", "wifi", or "WiFI"; "Ethernet" rather than "ethernet"; and
      "InfiniBand" rather than "Infiniband".
  17. 12 May, 2014 1 commit
  18. 28 Feb, 2014 1 commit
  19. 25 Feb, 2014 2 commits
  20. 24 Feb, 2014 1 commit
  21. 12 Dec, 2013 1 commit
    • Thomas Haller's avatar
      libnm-util: refactor NMSetting name and register_settings · 9d319e6d
      Thomas Haller authored
      - refactor register_settings to allow lookup by GType and
        add the settings name to SettingInfo.
      - setting NM_SETTING_NAME is deprecated and should not be set anymore.
        Indeed it has always be a bug, to reset the name to a different value.
        The only valid place to set the name was in the _init() function of
        the derived class itself.
        This is now no longer needed/possible. Instead the name get's
        detected based on the registered setting types. This makes use of
        the registered metadata that is available anyway since every
        usable setting has to register itself.
      Signed-off-by: Thomas Haller's avatarThomas Haller <thaller@redhat.com>
  22. 02 Dec, 2013 1 commit
  23. 24 Oct, 2013 1 commit
  24. 13 Jun, 2013 1 commit
  25. 29 May, 2013 1 commit
  26. 28 May, 2013 2 commits
  27. 03 May, 2013 1 commit
  28. 19 Apr, 2013 1 commit
    • Martin Pitt's avatar
      Use %NULL macro in doc strings · 57a9fb3c
      Martin Pitt authored
      Mass-converted "NULL" to "%NULL" in docstrings with
        find -name '*.c'| xargs sed -i '/^ \*.*[^%]NULL/ s/NULL\b/%NULL/g'
  29. 26 Mar, 2013 1 commit
  30. 13 Mar, 2013 1 commit
  31. 08 Mar, 2013 1 commit
    • Dan Williams's avatar
      libnm-util: free temporary GByteArray when using NM_SETTING_802_1X_CK_SCHEME_PATH · 2878481c
      Dan Williams authored
      If the certificate's format was valid, but we're asked to refer to it by
      paths instead of using the raw data, 'data' would be leaked.
      ==23089== 8,232 (40 direct, 8,192 indirect) bytes in 1 blocks are definitely lost in loss record 5,109 of 5,123
      ==23089==    at 0x4A0881C: malloc (vg_replace_malloc.c:270)
      ==23089==    by 0x39B905488E: g_malloc (gmem.c:159)
      ==23089==    by 0x39B9068CA1: g_slice_alloc (gslice.c:1003)
      ==23089==    by 0x39B9024539: g_array_sized_new (garray.c:195)
      ==23089==    by 0x31FC0146EA: file_to_g_byte_array (crypto.c:319)
      ==23089==    by 0x31FC01543B: crypto_load_and_verify_certificate (crypto.c:606)
      ==23089==    by 0x31FC01ED26: nm_setting_802_1x_set_client_cert (nm-setting-8021x.c:819)
      ==23089==    by 0xC6944A4: eap_tls_reader (reader.c:2316)
      ==23089==    by 0xC692756: fill_8021x (reader.c:2714)
      ==23089==    by 0xC696151: wireless_connection_from_ifcfg (reader.c:2832)
      ==23089==    by 0xC698E3A: connection_from_file (reader.c:4316)
      ==23089==    by 0xC69135C: nm_ifcfg_connection_new (nm-ifcfg-connection.c:119)
      ==23089== 8,352 (160 direct, 8,192 indirect) bytes in 4 blocks are definitely lost in loss record 5,110 of 5,123
      ==23089==    at 0x4A0881C: malloc (vg_replace_malloc.c:270)
      ==23089==    by 0x39B905488E: g_malloc (gmem.c:159)
      ==23089==    by 0x39B9068CA1: g_slice_alloc (gslice.c:1003)
      ==23089==    by 0x39B9024539: g_array_sized_new (garray.c:195)
      ==23089==    by 0x31FC0146EA: file_to_g_byte_array (crypto.c:319)
      ==23089==    by 0x31FC01543B: crypto_load_and_verify_certificate (crypto.c:606)
      ==23089==    by 0x31FC01E5E6: nm_setting_802_1x_set_ca_cert (nm-setting-8021x.c:538)
      ==23089==    by 0xC694DD8: eap_peap_reader (reader.c:2358)
      ==23089==    by 0xC692756: fill_8021x (reader.c:2714)
      ==23089==    by 0xC696151: wireless_connection_from_ifcfg (reader.c:2832)
      ==23089==    by 0xC698E3A: connection_from_file (reader.c:4316)
      ==23089==    by 0xC69135C: nm_ifcfg_connection_new (nm-ifcfg-connection.c:119)