#include <windows.h>
#include <stdio.h>
+int
main(int argc, char **argv) {
BOOL res;
+ HKEY hkSubmounts;
+
if (argc < 2 || argc > 3) {
- fprintf(stderr, "Incorrect arguments\n");
- exit(1);
+ fprintf(stderr, "Incorrect arguments\n");
+ exit(1);
}
- res = WritePrivateProfileString("AFS Submounts",
- argv[1],
- (argc == 3) ? argv[2] : NULL,
- "afsdsbmt.ini");
- if (res == FALSE)
- fprintf(stderr, "Failed, error code %d\n", GetLastError());
+ if (RegCreateKeyEx( HKEY_LOCAL_MACHINE,
+ "SOFTWARE\\OpenAFS\\Client\\Submounts",
+ 0,
+ NULL,
+ REG_OPTION_NON_VOLATILE,
+ KEY_READ|KEY_WRITE,
+ NULL,
+ &hkSubmounts,
+ NULL) == ERROR_SUCCESS)
+ {
+ if ( argc == 2 ) {
+ if (RegDeleteValue(hkSubmounts, argv[1])) {
+ fprintf(stderr,"Submount Deletion failure for [%s]: %lX",
+ argv[1], GetLastError());
+ return 1;
+ }
+ } else {
+ if (RegSetValueEx(hkSubmounts, argv[1], 0, REG_SZ, argv[2], strlen(argv[2]+1))) {
+ fprintf(stderr,"Submount Set failure for [%s]: %lX",
+ argv[1], GetLastError());
+ return 2;
+ }
+ }
+ RegCloseKey(hkSubmounts);
+ } else {
+ fprintf(stderr,"Submount access denied: %lX", GetLastError());
+ return 3;
+ }
return 0;
}