summaryrefslogtreecommitdiffstats
path: root/src/util/profile/prof_parse.c
Commit message (Collapse)AuthorAgeFilesLines
* Clean up a redundant assignment in libprofileGreg Hudson2012-05-131-2/+0
|
* Add support for loadable profile modulesGreg Hudson2011-07-201-8/+29
| | | | | | ticket: 6929 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25025 dc483132-0cff-0310-8789-dd5450dbe970
* Fix Windows buildGreg Hudson2010-11-251-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Repair the Windows build. Tested with the prepare-on-Unix method. Some specific changes include: * Removed the IPC finalizer (no longer used after r20787) from ccapi/lib/ccapi_ipc.c, as it was creating a difficult dependency chain for the pingtest build in ccapi/test. Also updated pingtest to use the k5_ipc_stream interfaces since cci_stream is gone. * Reverted the apparently non-functional r20277. * klist -V prints just "Kerberos for Windows", since it has no access to PACKAGE_NAME and PACKAGE_VERSION from autoconf. This should be addressed correctly. * krb5, telnet, gssftp, and NIM are removed from the build. * Some files had CRLFs; these were replaced with LFs and the svn:eol-style property set on the files. Otherwise the CRLFs became CRCRLFs after the zip transfer. * Windows does not have opendir/readdir, so added Windows code to prof_parse.c for includedir. Probable fodder for a libkrb5support portability shim. ticket: 6826 target_version: 1.9 tags: pullup git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@24533 dc483132-0cff-0310-8789-dd5450dbe970
* Fix a resource leak in the profile include supportGreg Hudson2010-08-291-5/+8
| | | | | | ticket: 6761 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@24274 dc483132-0cff-0310-8789-dd5450dbe970
* Revise the profile include design so that included files areGreg Hudson2010-08-251-15/+20
| | | | | | | | syntactically independent of parent files. ticket: 6761 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@24256 dc483132-0cff-0310-8789-dd5450dbe970
* Correct a commentGreg Hudson2010-08-241-2/+2
| | | | | | ticket: 6761 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@24255 dc483132-0cff-0310-8789-dd5450dbe970
* add profile include supportGreg Hudson2010-08-241-13/+92
| | | | | | | | | | Add support for "include" and "includedir" directives in profile files. See http://k5wiki.kerberos.org/wiki/Projects/Profile_Includes for more details. ticket: 6761 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@24253 dc483132-0cff-0310-8789-dd5450dbe970
* Mark and reindent util, with some exceptionsTom Yu2009-12-071-394/+395
| | | | git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23455 dc483132-0cff-0310-8789-dd5450dbe970
* make mark-cstyleTom Yu2009-10-311-4/+4
| | | | | | make reindent git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23100 dc483132-0cff-0310-8789-dd5450dbe970
* profile write code should only quote empty stringsAlexandra Ellwood2008-08-191-1/+1
| | | | | | | | | Assigned to Ken for review. ticket: new owner: raeburn git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20674 dc483132-0cff-0310-8789-dd5450dbe970
* profile library memory leaks introduced when malloc returns 0Ezra Peisach2007-09-261-0/+2
| | | | | | | | | | | | | | | | | | | | I have a modified version of valgrind that will allow me to have malloc fail in a controlled way. A number of memory leaks in error return passes exist in the profile library. They are essentially inconsequental - but my goal is to eventually create a test harness that tries to cover all code - including error returns... prof_parse.c: (profile_parse_file): Free node being created if parse_line() fails. prof_file.c (profile_open_file): free prf_data_t on malloc failure prof_tree.c (profile_create_node): The magic element must be set before calling profile_free_node for it to release memory. ticket: new git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19981 dc483132-0cff-0310-8789-dd5450dbe970
* profile stores empty string values without double quotesJeffrey Altman2007-04-251-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | prof_parse.c (need_double_quotes): The profile library will happily read in right hand values that represent the empty string by parsing "". However, when storing the same empty string back to a file, the empty string is written without the double quotes. This means that [section] foo = "" becomes [section] foo = which is invalid input. A subsequent attempt to parse the profile will result in an invalid input error. KFW and KFM's realm editors can inadvertently produce an invalid krb5 profile if one of the ignored sections of the input profile contains a right hand value that is "". This patch was produced by Asanka Herath and it was reviewed by jaltman and lxs. ticket: new tags: pullup git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19529 dc483132-0cff-0310-8789-dd5450dbe970
* Allow whitespace in front of comments. Patch from Jeremie KoenigRuss Allbery2006-06-121-3/+3
| | | | | | | Ticket: 1988 Version_Reported: 1.3.6 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@18118 dc483132-0cff-0310-8789-dd5450dbe970
* Permit exporting profile file data into a bufferKen Raeburn2004-10-271-32/+105
| | | | | | | | | | | | | | | | | | | | | * prof_file.c (profile_flush_file_data_to_buffer): New function. * profi_init.c (profile_flush_to_buffer, profile_free_buffer): New functions. * prof_parse.c (output_quoted_string): Use a callback instead of stdio calls. (dump_profile): Renamed from dump_profile_to_file. Use a callback instead of stdio calls. (dump_profile_to_file_cb): New function. (profile_write_tree_file): Updated to new internal interface. (struct prof_buf): New type. (add_data_to_buffer, dump_profile_to_buffer_cb, profile_write_tree_to_buffer): New functions. * prof_int.h (profile_write_tree_to_buffer, profile_flush_file_data_to_buffer): Declare. * profile.hin (profile_flush_to_buffer, profile_free_buffer): Declare. * libprofile.exports: Export profile_flush_to_buffer and profile_free_buffer. * profile.swg (profile_flush_to_buffer): Declare. * profile_tcl.c: Regenerated. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16838 dc483132-0cff-0310-8789-dd5450dbe970
* * prof_parse.c (parse_std_line): Rewrite handling of whitespace in and afterKen Raeburn2004-08-281-6/+15
| | | | | | | | | | | | | | tag, to strip trailing whitespace (per current locale, not just ASCII space characters), and prohibit any internal space characters in tag names. (This is not the patch supplied in the bug report; that patch changed the tag handling to allow spaces in tag names, which we haven't previously allowed. On the other hand, we haven't specifically disallowed internal tabs or other whitespace, either, and this patch does so.) ticket: 2614 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16697 dc483132-0cff-0310-8789-dd5450dbe970
* Delete preprocessor tests for macintosh, __MWERKS__, applec, and THINK_C, allKen Raeburn2004-06-221-4/+0
| | | | | | | part of the pre-Mac OS X support. (Except the bits in the Yarrow code, where it was part of the upstream source.) git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16506 dc483132-0cff-0310-8789-dd5450dbe970
* ProtoizeKen Raeburn2004-02-191-27/+11
| | | | git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16099 dc483132-0cff-0310-8789-dd5450dbe970
* move prof-int.h to be the first include file in order to obtainJeffrey Altman2003-12-141-2/+2
| | | | | | | | | platform specific preprocessor variables used to selectively import other header files ticket: 2068 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@15921 dc483132-0cff-0310-8789-dd5450dbe970
* Support \r as additional line separator on Mac OS XKen Raeburn2003-01-091-0/+50
| | | | | | | | | | | | * prof_parse.c (profile_parse_file) [PROFILE_SUPPORTS_FOREIGN_NEWLINES]: Look for \r and treat it as a line break. * prof_int.h: Don't include prof_err.h. (PROFILE_SUPPORTS_FOREIGN_NEWLINES) [macintosh]: Define new macro. ticket: 1237 status: open git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@15100 dc483132-0cff-0310-8789-dd5450dbe970
* * prof_parse.c (strip_line): Simplify loop by preserving "p" rather thanKen Raeburn2002-06-191-9/+3
| | | | | | recomputing it. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@14542 dc483132-0cff-0310-8789-dd5450dbe970
* Danilo also says we can get rid of _MSDOS (Win16) tests, and explicit ↵Ken Raeburn2001-10-061-1/+1
| | | | | | FAR/NEAR specs git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@13786 dc483132-0cff-0310-8789-dd5450dbe970
* * argv_parse.c (argv_parse): Cast argument to isspace() as int.Ezra Peisach2001-06-111-3/+3
| | | | | | | | | | * prof_parse.c (skip_over_blanks, parse_std_line, need_double_quotes): Likewise On some systems, isspace() is a macro indexing an array. Gcc warns on indexing an array with a char. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@13335 dc483132-0cff-0310-8789-dd5450dbe970
* * krb5.conf: Test with a space after ']' and '{'Ezra Peisach2000-08-021-1/+5
| | | | | | | * prof_parse.c (parse_std_line): Spaces after '{' or ']' should not be a fatal error. This is a common lossage in krb5.conf files. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@12595 dc483132-0cff-0310-8789-dd5450dbe970
* test_profile.c: Added ability to test profile set functions, and in aTheodore Tso1999-03-031-45/+9
| | | | | | | | | | | | | | | | | | | | | | batch mode. prof_init.c (profile_flush): Add new public function for flushing changes made to the profile. prof_parse.c (profile_write_tree_file): Add official internal function for flushing out a profile tree to a FILE *. configure.in, prof_file.c (rw_access): Add new function which checks to see whether we have read/write access, and emulate this for losing non-POSIX OS's. prof_file.c (profile_flush_file): Add support for writing modified profile file's. Call profile_flush_file from profile_close_file(). Also fixed minor bugs in prof_tree.c which affected renaming sections and modifying existing relations. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@11237 dc483132-0cff-0310-8789-dd5450dbe970
* Makefile.in: Set the myfulldir and mydir variables (which are relativeTheodore Tso1998-11-141-4/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to buildtop and thisconfigdir, respectively.) configure.in: Build the test script prtest for doing regression test suites of the profile library. prof_err.et (PROF_MAGIC_ITERATOR): Add a new error code for the magic number for the iterator structure. prof_file.c (profile_update_file): Increment the update serial number when the profile file is re-read. prof_tree.c (profile_make_node_final, profile_is_node_final): Add a new attribute for a node, which is whether or not the node is "final". This controls whether or not the next profile file should be searched when looking up a key which matches the section named by the node. (profile_node_iterator_create, profile_node_iterator_free, profile_node_iterator): New functions which take a profile_t and returns all of the names or values for a particular search key. This iterator follows the rules of doing multiple profile file lookups using the "final node" marker to stop searching subsequent profile files. prof_parse.c (parse_std_line): Add support for marking top level sections, subsections, and individual nodes as final, using the '*' character. (dump_profile_to_file): Print finalized sections with the '*' character. prof_get.c: Update routines to use the iterators provided by prof_tree.c. prof_int.c: Add upd_serial member to the prf_file_t structure. Define the symbolic flags used by the profile node iterator. Add function declarations for profile_make_node_final, profile_is_node_final, profile_node_iterator_create, profile_node_iterator_free, profile_node_iterator, and profile_get_value. test_profile.c: Add the query1 command which tests profile_get_value. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@11038 dc483132-0cff-0310-8789-dd5450dbe970
* Makefile.in: Added prof_get.c to the list of files to be compiledTheodore Tso1998-11-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | profile.hin: Added declarations for profile_free_list(), profile_get_relation_names(), and profile_get_subsection_names(). (These are new public interfaces to the profile library.) prof_int.h: Removed the profile_section_t structure, which was used only by the now-defunct prof_section.c file. Added the internal interfaces for the new public interfaces. Removed unused declarations which were never implemented(profile_get, profile_update). prof_init.c: Moved all of the profile querying functions (profile_get_values(), profile_get_value(), etc.) to prof_get.c. In the process, removed the really bletcherous (and badly implemented) profile_get_first_values(), which did nothing like what the named implied. Also added to prof_get.c new functions profile_get_subsection_names() and profile_get_relation_names(). (profile_ser_internalize): Rewrote error handling to be clearer, and removed a bug where memory was not freed correctly in an error case. (profile_init): If a list of pathnames is passed in, profile_init will now try to open all of them, now that we've defined query fallback semantics in prof_get.c prof_parse.c: Fix lint warning. prof_tree.c (profile_find_node_relation, profile_find_node_subsection): Allow the returned value or subsection field to be NULL (in case the caller isn't interested in getting the returned value or subsection, and only cares about getting the name). (profile_delete_node_relation, profile_delete_interior_node_relation): Removed these functions and replaced it with profile_remove_node(), which takes a boolean argument section_flag. (profile_find_node_name): Removed this function. (This was a Cygnus/Fusion special used by the now removed profile_find_first_values() function.) test_profile.c: Added commands to test the new profile_get_subsection_names() and profile_get_relation_names() interfaces. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@11011 dc483132-0cff-0310-8789-dd5450dbe970
* Replaced preprocessor symbol _MACINTOSH with macintosh, since macintosh is ↵Miro Jurisic1998-07-171-1/+1
| | | | | | the standard symbol defined by all Mac compiler (oh, sure, it doesn't have _. but at least it's always there) git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@10653 dc483132-0cff-0310-8789-dd5450dbe970
* prof_parse.c (parse_std_line, parse_quoted_string, need_double_quotes,Theodore Tso1998-01-241-5/+108
| | | | | | | | | | output_quoted_string, dump_profile, dump_profile_to_file): Vastly improved the profile parsing; whitespace at the end of lines are now ignored. Added quoted string parsing, complete with backquote processing. Strings which need to be quoted are properly quoted on output. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@10373 dc483132-0cff-0310-8789-dd5450dbe970
* Accept either ';' or '#' on the first line of a string as a commentTheodore Tso1996-11-051-1/+1
| | | | | | character. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@9294 dc483132-0cff-0310-8789-dd5450dbe970
* Only include stdlib.h if it's availableTheodore Tso1996-06-241-0/+2
| | | | git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@8547 dc483132-0cff-0310-8789-dd5450dbe970
* test_profile.c: Add usage message if not enough argumentsTheodore Tso1996-06-121-9/+21
| | | | | | | | | | | | | | | prof_parse.c (dump_profile_to_file, dump_profile): Dump the profile using the correct line terminator for Windows, Macintosh, etc. prof_parse.c: prof_file.c: Change _WINDOWS to _MSDOS, and add check for _WIN32. prof_int.h: Add size #defines for _WIN32. Handle prototypes correctly for _WIN32. prof_int.h: Added comment to profile state structure git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@8318 dc483132-0cff-0310-8789-dd5450dbe970
* Make parsing more flexible, so we don't barf over lack of spacesTheodore Tso1996-02-141-16/+12
| | | | | | around the equals sign. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@7479 dc483132-0cff-0310-8789-dd5450dbe970
* Convert C+ comment to older 'standard' C style commentEzra Peisach1995-09-111-1/+1
| | | | git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6751 dc483132-0cff-0310-8789-dd5450dbe970
* Mac Beta 1 submissionKeith Vetter1995-09-111-0/+55
| | | | git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6749 dc483132-0cff-0310-8789-dd5450dbe970
* * prof_parse.c (strip_line,parse_line): Declare as staticEzra Peisach1995-08-151-2/+2
| | | | | | | | * prof_int.h: Add missing prototypes Cleanup -Wmissing_prototypes complaints git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6533 dc483132-0cff-0310-8789-dd5450dbe970
* Don't try to strip an empty line. This causes memory reference errorTheodore Tso1995-04-281-1/+1
| | | | git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@5630 dc483132-0cff-0310-8789-dd5450dbe970
* Got the profile code to work on the PCKeith Vetter1995-04-271-8/+20
| | | | git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@5549 dc483132-0cff-0310-8789-dd5450dbe970
* Use correct type for retvalTheodore Tso1995-04-211-1/+1
| | | | git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@5417 dc483132-0cff-0310-8789-dd5450dbe970
* Initial checkin of the profile libraryTheodore Tso1995-04-201-0/+220
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@5382 dc483132-0cff-0310-8789-dd5450dbe970