summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@sbcglobal.net>2016-06-18 06:19:16 -0400
committerLuke Shumaker <lukeshu@sbcglobal.net>2016-06-18 06:19:16 -0400
commit95c195baf42e8a74680a74acdc20c00bab7660eb (patch)
tree996e3d8ab8832b35f0195c7c026d646ce97cdecd
parentfd98ee554c3c785ee83460e83027d56891fbd9b2 (diff)
go back to using plain stringsv20160518.1
m---------go/lukeshu.com/git/go/libnslcd.git0
-rw-r--r--go/parabola_hackers/nslcd_backend/db_config.go2
-rw-r--r--go/parabola_hackers/nslcd_backend/db_group.go35
-rw-r--r--go/parabola_hackers/nslcd_backend/db_pam.go40
-rw-r--r--go/parabola_hackers/nslcd_backend/db_passwd.go8
-rw-r--r--go/parabola_hackers/nslcd_backend/db_shadow.go2
-rw-r--r--go/parabola_hackers/nslcd_backend/hackers.go9
-rw-r--r--go/parabola_hackers/users.go.in12
-rw-r--r--go/parabola_hackers/util.go2
9 files changed, 50 insertions, 60 deletions
diff --git a/go/lukeshu.com/git/go/libnslcd.git b/go/lukeshu.com/git/go/libnslcd.git
-Subproject 3e822e5138238b6cb612942f6397bc513ace358
+Subproject b97ad53c80372d3246220b8fdb5a7a4c1a4d3f0
diff --git a/go/parabola_hackers/nslcd_backend/db_config.go b/go/parabola_hackers/nslcd_backend/db_config.go
index 281b058..e78643b 100644
--- a/go/parabola_hackers/nslcd_backend/db_config.go
+++ b/go/parabola_hackers/nslcd_backend/db_config.go
@@ -32,7 +32,7 @@ func (o *Hackers) Config_Get(cred s.Ucred, req p.Request_Config_Get) <-chan p.Co
switch req.Key {
case p.NSLCD_CONFIG_PAM_PASSWORD_PROHIBIT_MESSAGE:
if o.cfg.Pam_password_prohibit_message != "" {
- ret <- p.Config{Value: p.String(o.cfg.Pam_password_prohibit_message)}
+ ret <- p.Config{Value: o.cfg.Pam_password_prohibit_message}
}
}
}()
diff --git a/go/parabola_hackers/nslcd_backend/db_group.go b/go/parabola_hackers/nslcd_backend/db_group.go
index caced21..18e54b1 100644
--- a/go/parabola_hackers/nslcd_backend/db_group.go
+++ b/go/parabola_hackers/nslcd_backend/db_group.go
@@ -17,21 +17,12 @@
package hackers_nslcd_backend
import (
+ "parabola_hackers"
s "syscall"
p "lukeshu.com/git/go/libnslcd.git/proto"
)
-func set2list(set map[string]bool) []p.String {
- list := make([]p.String, len(set))
- i := uint(0)
- for item, _ := range set {
- list[i] = p.String(item)
- i++
- }
- return list
-}
-
func (o *Hackers) groupByName(name string, users bool) p.Group {
members_set, found := o.groups[name]
if !found {
@@ -41,15 +32,15 @@ func (o *Hackers) groupByName(name string, users bool) p.Group {
if gid < 0 {
return p.Group{ID: -1}
}
- var members_list []p.String
+ var members_list []string
if users {
- members_list = set2list(members_set)
+ members_list = parabola_hackers.Set2list(members_set)
} else {
- members_list = make([]p.String, 0)
+ members_list = make([]string, 0)
}
return p.Group{
- Name: p.String(name),
- PwHash: p.String("x"),
+ Name: name,
+ PwHash: "x",
ID: gid,
Members: members_list,
}
@@ -64,15 +55,15 @@ func (o *Hackers) groupByGid(gid int32, users bool) p.Group {
if !found {
return p.Group{ID: -1}
}
- var members_list []p.String
+ var members_list []string
if users {
- members_list = set2list(members_set)
+ members_list = parabola_hackers.Set2list(members_set)
} else {
- members_list = make([]p.String, 0)
+ members_list = make([]string, 0)
}
return p.Group{
- Name: p.String(name),
- PwHash: p.String("x"),
+ Name: name,
+ PwHash: "x",
ID: gid,
Members: members_list,
}
@@ -85,7 +76,7 @@ func (o *Hackers) Group_ByName(cred s.Ucred, req p.Request_Group_ByName) <-chan
defer o.lock.RUnlock()
defer close(ret)
- group := o.groupByName(string(req.Name), true)
+ group := o.groupByName(req.Name, true)
if group.ID < 0 {
return
}
@@ -118,7 +109,7 @@ func (o *Hackers) Group_ByMember(cred s.Ucred, req p.Request_Group_ByMember) <-c
defer o.lock.RUnlock()
defer close(ret)
- uid := o.name2uid(string(req.Member))
+ uid := o.name2uid(req.Member)
if uid < 0 {
return
}
diff --git a/go/parabola_hackers/nslcd_backend/db_pam.go b/go/parabola_hackers/nslcd_backend/db_pam.go
index a0c390f..f770cc1 100644
--- a/go/parabola_hackers/nslcd_backend/db_pam.go
+++ b/go/parabola_hackers/nslcd_backend/db_pam.go
@@ -27,12 +27,12 @@ import (
"lukeshu.com/git/go/libsystemd.git/sd_daemon/logger"
)
-func checkPassword(password p.String, hash p.String) bool {
- return crypt.Crypt(string(password), string(hash)) == string(hash)
+func checkPassword(password string, hash string) bool {
+ return crypt.Crypt(password, hash) == hash
}
-func hashPassword(newPassword p.String, oldHash p.String) p.String {
- salt := string(oldHash)
+func hashPassword(newPassword string, oldHash string) string {
+ salt := oldHash
if salt == "!" {
str, err := parabola_hackers.RandomString(crypt.SaltAlphabet, 8)
if err != nil {
@@ -41,7 +41,7 @@ func hashPassword(newPassword p.String, oldHash p.String) p.String {
}
salt = "$6$" + str + "$"
}
- return p.String(crypt.Crypt(string(newPassword), salt))
+ return crypt.Crypt(newPassword, salt)
}
func dirExists(path string) bool {
@@ -62,14 +62,14 @@ func (o *Hackers) PAM_Authentication(cred s.Ucred, req p.Request_PAM_Authenticat
if len(req.UserName) == 0 && len(req.Password) == 0 && cred.Uid == 0 {
ret <- p.PAM_Authentication{
AuthenticationResult: p.NSLCD_PAM_SUCCESS,
- UserName: p.String(""),
+ UserName: "",
AuthorizationResult: p.NSLCD_PAM_SUCCESS,
- AuthorizationError: p.String(""),
+ AuthorizationError: "",
}
return
}
- uid := o.name2uid(string(req.UserName))
+ uid := o.name2uid(req.UserName)
if uid < 0 {
return
}
@@ -77,9 +77,9 @@ func (o *Hackers) PAM_Authentication(cred s.Ucred, req p.Request_PAM_Authenticat
user := o.users[uid]
obj := p.PAM_Authentication{
AuthenticationResult: p.NSLCD_PAM_AUTH_ERR,
- UserName: p.String(""),
+ UserName: "",
AuthorizationResult: p.NSLCD_PAM_AUTH_ERR,
- AuthorizationError: p.String(""),
+ AuthorizationError: "",
}
if checkPassword(req.Password, user.Passwd.PwHash) {
obj.AuthenticationResult = p.NSLCD_PAM_SUCCESS
@@ -98,13 +98,13 @@ func (o *Hackers) PAM_Authorization(cred s.Ucred, req p.Request_PAM_Authorizatio
defer o.lock.RUnlock()
defer close(ret)
- uid := o.name2uid(string(req.UserName))
+ uid := o.name2uid(req.UserName)
if uid < 0 {
return
}
ret <- p.PAM_Authorization{
Result: p.NSLCD_PAM_SUCCESS,
- Error: p.String(""),
+ Error: "",
}
}()
return ret
@@ -121,7 +121,7 @@ func (o *Hackers) PAM_SessionOpen(cred s.Ucred, req p.Request_PAM_SessionOpen) <
if err != nil {
return
}
- ret <- p.PAM_SessionOpen{SessionID: p.String(sessionid)}
+ ret <- p.PAM_SessionOpen{SessionID: sessionid}
}()
return ret
}
@@ -139,7 +139,7 @@ func (o *Hackers) PAM_PwMod(cred s.Ucred, req p.Request_PAM_PwMod) <-chan p.PAM_
defer close(ret)
defer o.lock.Unlock()
- uid := o.name2uid(string(req.UserName))
+ uid := o.name2uid(req.UserName)
if uid < 0 {
return
}
@@ -152,13 +152,13 @@ func (o *Hackers) PAM_PwMod(cred s.Ucred, req p.Request_PAM_PwMod) <-chan p.PAM_
// special hack: if the old password is not
// set, but the home directory exists, let the
// user set their password
- if string(user.Passwd.PwHash) == "!" && dirExists(string(user.Passwd.HomeDir)) {
+ if user.Passwd.PwHash == "!" && dirExists(user.Passwd.HomeDir) {
goto update
}
if !checkPassword(req.OldPassword, user.Passwd.PwHash) {
ret <- p.PAM_PwMod{
Result: p.NSLCD_PAM_PERM_DENIED,
- Error: p.String(fmt.Sprintf("password change failed: %s", "Old password did not match")),
+ Error: fmt.Sprintf("password change failed: %s", "Old password did not match"),
}
return
}
@@ -166,7 +166,7 @@ func (o *Hackers) PAM_PwMod(cred s.Ucred, req p.Request_PAM_PwMod) <-chan p.PAM_
if len(req.NewPassword) == 0 {
ret <- p.PAM_PwMod{
Result: p.NSLCD_PAM_PERM_DENIED,
- Error: p.String("password cannot be empty"),
+ Error: "password cannot be empty",
}
return
}
@@ -181,9 +181,9 @@ func (o *Hackers) PAM_PwMod(cred s.Ucred, req p.Request_PAM_PwMod) <-chan p.PAM_
// Update the PwHash on disk
passwords := make(map[string]string, len(o.users))
for _, ouser := range o.users {
- passwords[string(ouser.Passwd.Name)] = string(ouser.Passwd.PwHash)
+ passwords[ouser.Passwd.Name] = ouser.Passwd.PwHash
}
- passwords[string(user.Passwd.Name)] = string(user.Passwd.PwHash)
+ passwords[user.Passwd.Name] = user.Passwd.PwHash
err := parabola_hackers.SaveAllPasswords(passwords)
if err != nil {
logger.Err("Writing passwords to disk: %v", err)
@@ -194,7 +194,7 @@ func (o *Hackers) PAM_PwMod(cred s.Ucred, req p.Request_PAM_PwMod) <-chan p.PAM_
o.users[uid] = user
ret <- p.PAM_PwMod{
Result: p.NSLCD_PAM_SUCCESS,
- Error: p.String(""),
+ Error: "",
}
}()
return ret
diff --git a/go/parabola_hackers/nslcd_backend/db_passwd.go b/go/parabola_hackers/nslcd_backend/db_passwd.go
index 7bac808..3f32ddd 100644
--- a/go/parabola_hackers/nslcd_backend/db_passwd.go
+++ b/go/parabola_hackers/nslcd_backend/db_passwd.go
@@ -36,12 +36,12 @@ func (o *Hackers) Passwd_ByName(cred s.Ucred, req p.Request_Passwd_ByName) <-cha
defer o.lock.RUnlock()
defer close(ret)
- uid := o.name2uid(string(req.Name))
+ uid := o.name2uid(req.Name)
if uid < 0 {
return
}
passwd := o.users[uid].Passwd
- passwd.PwHash = p.String("x") // only put actual hashes in the Shadow DB
+ passwd.PwHash = "x" // only put actual hashes in the Shadow DB
ret <- passwd
}()
return ret
@@ -59,7 +59,7 @@ func (o *Hackers) Passwd_ByUID(cred s.Ucred, req p.Request_Passwd_ByUID) <-chan
return
}
passwd := user.Passwd
- passwd.PwHash = p.String("x") // only put actual hashes in the Shadow DB
+ passwd.PwHash = "x" // only put actual hashes in the Shadow DB
ret <- passwd
}()
return ret
@@ -74,7 +74,7 @@ func (o *Hackers) Passwd_All(cred s.Ucred, req p.Request_Passwd_All) <-chan p.Pa
for _, user := range o.users {
passwd := user.Passwd
- passwd.PwHash = p.String("x") // only put actual hashes in the Shadow DB
+ passwd.PwHash = "x" // only put actual hashes in the Shadow DB
ret <- passwd
}
}()
diff --git a/go/parabola_hackers/nslcd_backend/db_shadow.go b/go/parabola_hackers/nslcd_backend/db_shadow.go
index db114d8..abfff28 100644
--- a/go/parabola_hackers/nslcd_backend/db_shadow.go
+++ b/go/parabola_hackers/nslcd_backend/db_shadow.go
@@ -32,7 +32,7 @@ func (o *Hackers) Shadow_ByName(cred s.Ucred, req p.Request_Shadow_ByName) <-cha
if cred.Uid != 0 {
return
}
- uid := o.name2uid(string(req.Name))
+ uid := o.name2uid(req.Name)
user := o.users[uid]
ret <- p.Shadow{
Name: user.Passwd.Name,
diff --git a/go/parabola_hackers/nslcd_backend/hackers.go b/go/parabola_hackers/nslcd_backend/hackers.go
index c436824..bb03862 100644
--- a/go/parabola_hackers/nslcd_backend/hackers.go
+++ b/go/parabola_hackers/nslcd_backend/hackers.go
@@ -22,7 +22,6 @@ import (
"parabola_hackers"
"sync"
- p "lukeshu.com/git/go/libnslcd.git/proto"
nslcd_server "lukeshu.com/git/go/libnslcd.git/proto/server"
nslcd_systemd "lukeshu.com/git/go/libnslcd.git/systemd"
"lukeshu.com/git/go/libsystemd.git/sd_daemon/logger"
@@ -91,14 +90,14 @@ func (o *Hackers) Reload() error {
o.groups = make(map[string]map[string]bool)
for uid, user := range o.users {
user.Passwd.GID = usersGid
- hash, hasHash := passwords[string(user.Passwd.Name)]
+ hash, hasHash := passwords[user.Passwd.Name]
if !hasHash {
hash = "!"
}
- user.Passwd.PwHash = p.String(hash)
+ user.Passwd.PwHash = hash
o.users[uid] = user
for _, groupname := range user.Groups {
- o.add_user_to_group(string(user.Passwd.Name), groupname)
+ o.add_user_to_group(user.Passwd.Name, groupname)
}
}
return nil
@@ -106,7 +105,7 @@ func (o *Hackers) Reload() error {
func (o *Hackers) name2uid(name string) int32 {
for uid, data := range o.users {
- if string(data.Passwd.Name) == name {
+ if data.Passwd.Name == name {
return uid
}
}
diff --git a/go/parabola_hackers/users.go.in b/go/parabola_hackers/users.go.in
index edd8a59..e54de01 100644
--- a/go/parabola_hackers/users.go.in
+++ b/go/parabola_hackers/users.go.in
@@ -89,8 +89,8 @@ func parseUser(_data interface{}) (ret User, err error) {
} else if str, isTyp := iface.(string); !isTyp {
errs = append(errs, "\"username\" is not a string")
} else {
- ret.Passwd.Name = p.String(str)
- ret.Passwd.HomeDir = p.String("/home/" + str)
+ ret.Passwd.Name = str
+ ret.Passwd.HomeDir = "/home/" + str
}
if iface, isSet := data["fullname"]; !isSet {
@@ -98,7 +98,7 @@ func parseUser(_data interface{}) (ret User, err error) {
} else if str, isTyp := iface.(string); !isTyp {
errs = append(errs, "\"fullname\" is not a string")
} else {
- ret.Passwd.GECOS = p.String(str)
+ ret.Passwd.GECOS = str
}
if iface, isSet := data["shell"]; !isSet {
@@ -106,7 +106,7 @@ func parseUser(_data interface{}) (ret User, err error) {
} else if str, isTyp := iface.(string); !isTyp {
errs = append(errs, "\"shell\" is not a string")
} else {
- ret.Passwd.Shell = p.String(str)
+ ret.Passwd.Shell = str
}
if iface, isSet := data["groups"]; !isSet {
@@ -126,7 +126,7 @@ func parseUser(_data interface{}) (ret User, err error) {
}
}
if !e {
- ret.Groups = set2list(groups)
+ ret.Groups = Set2list(groups)
}
}
}
@@ -134,7 +134,7 @@ func parseUser(_data interface{}) (ret User, err error) {
err = &yaml.TypeError{Errors: errs}
}
- ret.Passwd.PwHash = p.String("x") // look in shadow for the password hash
+ ret.Passwd.PwHash = string("x") // look in shadow for the password hash
ret.Passwd.GID = -1
return
diff --git a/go/parabola_hackers/util.go b/go/parabola_hackers/util.go
index 8dd9374..9a241db 100644
--- a/go/parabola_hackers/util.go
+++ b/go/parabola_hackers/util.go
@@ -36,7 +36,7 @@ func RandomString(alphabet string, n uint) (str string, err error) {
return
}
-func set2list(set map[string]bool) []string {
+func Set2list(set map[string]bool) []string {
list := make([]string, len(set))
i := uint(0)
for item, _ := range set {