diff --git a/acme/account.go b/acme/account.go
index 82c087fe..925ab293 100644
--- a/acme/account.go
+++ b/acme/account.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package acme
import (
diff --git a/acme/acme.go b/acme/acme.go
index 76900192..a0eafddc 100644
--- a/acme/acme.go
+++ b/acme/acme.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
// Package acme provides automatic access to certificates from Let's Encrypt and any other ACME-based CA
// The code here is largely coiped from https://github.com/go-acme/lego/tree/master/cmd
// This package is intended to provide basic functionality for obtaining and renewing certificates
diff --git a/cmd/acme.go b/cmd/acme.go
index de071390..104b7c27 100644
--- a/cmd/acme.go
+++ b/cmd/acme.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package cmd
import (
diff --git a/cmd/awscontainer.go b/cmd/awscontainer.go
index d12e9158..c6f34231 100644
--- a/cmd/awscontainer.go
+++ b/cmd/awscontainer.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build awscontainer
// +build awscontainer
diff --git a/cmd/awscontainer_disabled.go b/cmd/awscontainer_disabled.go
index b40fce6b..ebbd6ec0 100644
--- a/cmd/awscontainer_disabled.go
+++ b/cmd/awscontainer_disabled.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build !awscontainer
// +build !awscontainer
diff --git a/cmd/gen.go b/cmd/gen.go
index 083e39c6..a18256af 100644
--- a/cmd/gen.go
+++ b/cmd/gen.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package cmd
import "github.com/spf13/cobra"
diff --git a/cmd/gencompletion.go b/cmd/gencompletion.go
index 5205e2ad..5e252af9 100644
--- a/cmd/gencompletion.go
+++ b/cmd/gencompletion.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package cmd
import (
diff --git a/cmd/genman.go b/cmd/genman.go
index e9d94593..b171c3ff 100644
--- a/cmd/genman.go
+++ b/cmd/genman.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package cmd
import (
diff --git a/cmd/initprovider.go b/cmd/initprovider.go
index 27876d1f..2984f631 100644
--- a/cmd/initprovider.go
+++ b/cmd/initprovider.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package cmd
import (
diff --git a/cmd/install_windows.go b/cmd/install_windows.go
index 04f2ec68..42f666f3 100644
--- a/cmd/install_windows.go
+++ b/cmd/install_windows.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package cmd
import (
diff --git a/cmd/portable.go b/cmd/portable.go
index 8ad308be..0697455c 100644
--- a/cmd/portable.go
+++ b/cmd/portable.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build !noportable
// +build !noportable
diff --git a/cmd/portable_disabled.go b/cmd/portable_disabled.go
index f9d9aa55..90263b6b 100644
--- a/cmd/portable_disabled.go
+++ b/cmd/portable_disabled.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build noportable
// +build noportable
diff --git a/cmd/reload_windows.go b/cmd/reload_windows.go
index 0b98ac4e..d2d9c9ba 100644
--- a/cmd/reload_windows.go
+++ b/cmd/reload_windows.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package cmd
import (
diff --git a/cmd/resetprovider.go b/cmd/resetprovider.go
index 437db6e7..eb48e6c6 100644
--- a/cmd/resetprovider.go
+++ b/cmd/resetprovider.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package cmd
import (
diff --git a/cmd/revertprovider.go b/cmd/revertprovider.go
index 1934d1b1..758ffa03 100644
--- a/cmd/revertprovider.go
+++ b/cmd/revertprovider.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package cmd
import (
diff --git a/cmd/root.go b/cmd/root.go
index 573c96ea..47c82081 100644
--- a/cmd/root.go
+++ b/cmd/root.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
// Package cmd provides Command Line Interface support
package cmd
diff --git a/cmd/rotatelogs_windows.go b/cmd/rotatelogs_windows.go
index 8dcabdea..a3edc214 100644
--- a/cmd/rotatelogs_windows.go
+++ b/cmd/rotatelogs_windows.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package cmd
import (
diff --git a/cmd/serve.go b/cmd/serve.go
index fdc6a732..4b3d2b7d 100644
--- a/cmd/serve.go
+++ b/cmd/serve.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package cmd
import (
diff --git a/cmd/service_windows.go b/cmd/service_windows.go
index 706d9fb1..221e92a3 100644
--- a/cmd/service_windows.go
+++ b/cmd/service_windows.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package cmd
import (
diff --git a/cmd/smtptest.go b/cmd/smtptest.go
index a3a714e9..71d7df52 100644
--- a/cmd/smtptest.go
+++ b/cmd/smtptest.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package cmd
import (
diff --git a/cmd/start_windows.go b/cmd/start_windows.go
index de074ce0..4c3bc463 100644
--- a/cmd/start_windows.go
+++ b/cmd/start_windows.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package cmd
import (
diff --git a/cmd/startsubsys.go b/cmd/startsubsys.go
index 8659fe95..80af00e6 100644
--- a/cmd/startsubsys.go
+++ b/cmd/startsubsys.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package cmd
import (
diff --git a/cmd/status_windows.go b/cmd/status_windows.go
index d431e2b6..00ca3a86 100644
--- a/cmd/status_windows.go
+++ b/cmd/status_windows.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package cmd
import (
diff --git a/cmd/stop_windows.go b/cmd/stop_windows.go
index 656aa076..fcab2db5 100644
--- a/cmd/stop_windows.go
+++ b/cmd/stop_windows.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package cmd
import (
diff --git a/cmd/uninstall_windows.go b/cmd/uninstall_windows.go
index 6f467d70..f57899b6 100644
--- a/cmd/uninstall_windows.go
+++ b/cmd/uninstall_windows.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package cmd
import (
diff --git a/command/command.go b/command/command.go
index 42db839d..73927b9c 100644
--- a/command/command.go
+++ b/command/command.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package command
import (
diff --git a/command/command_test.go b/command/command_test.go
index 47e89ec7..7f0a5838 100644
--- a/command/command_test.go
+++ b/command/command_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package command
import (
diff --git a/common/actions.go b/common/actions.go
index c06dbf0a..59cb0dee 100644
--- a/common/actions.go
+++ b/common/actions.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/actions_test.go b/common/actions_test.go
index 95dc337a..d9d4c186 100644
--- a/common/actions_test.go
+++ b/common/actions_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/clientsmap.go b/common/clientsmap.go
index e768fec6..f2375060 100644
--- a/common/clientsmap.go
+++ b/common/clientsmap.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/clientsmap_test.go b/common/clientsmap_test.go
index fa851984..854c81fa 100644
--- a/common/clientsmap_test.go
+++ b/common/clientsmap_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/common.go b/common/common.go
index c3df955d..c865db4e 100644
--- a/common/common.go
+++ b/common/common.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
// Package common defines code shared among file transfer packages and protocols
package common
diff --git a/common/common_test.go b/common/common_test.go
index 2270e760..b3918849 100644
--- a/common/common_test.go
+++ b/common/common_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/connection.go b/common/connection.go
index b8167714..e55d825c 100644
--- a/common/connection.go
+++ b/common/connection.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/connection_test.go b/common/connection_test.go
index 7b3761ec..04f106c2 100644
--- a/common/connection_test.go
+++ b/common/connection_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/dataretention.go b/common/dataretention.go
index 9457b1b2..95929361 100644
--- a/common/dataretention.go
+++ b/common/dataretention.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/dataretention_test.go b/common/dataretention_test.go
index 433c2641..73a02f96 100644
--- a/common/dataretention_test.go
+++ b/common/dataretention_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/defender.go b/common/defender.go
index 3b02df55..04755d46 100644
--- a/common/defender.go
+++ b/common/defender.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/defender_test.go b/common/defender_test.go
index e8dba744..5c31c0ea 100644
--- a/common/defender_test.go
+++ b/common/defender_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/defenderdb.go b/common/defenderdb.go
index 838d7e87..c9bcdecf 100644
--- a/common/defenderdb.go
+++ b/common/defenderdb.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/defenderdb_test.go b/common/defenderdb_test.go
index f7bf9e64..93e4b109 100644
--- a/common/defenderdb_test.go
+++ b/common/defenderdb_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/defendermem.go b/common/defendermem.go
index d639f713..50569eb0 100644
--- a/common/defendermem.go
+++ b/common/defendermem.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/httpauth.go b/common/httpauth.go
index f03fc5f8..c3acb251 100644
--- a/common/httpauth.go
+++ b/common/httpauth.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/httpauth_test.go b/common/httpauth_test.go
index 63c4995a..c9bff886 100644
--- a/common/httpauth_test.go
+++ b/common/httpauth_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/protocol_test.go b/common/protocol_test.go
index 0b368679..b63dd93a 100644
--- a/common/protocol_test.go
+++ b/common/protocol_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common_test
import (
diff --git a/common/ratelimiter.go b/common/ratelimiter.go
index bdaac675..db7e06e5 100644
--- a/common/ratelimiter.go
+++ b/common/ratelimiter.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/ratelimiter_test.go b/common/ratelimiter_test.go
index 82b029eb..d13bdd37 100644
--- a/common/ratelimiter_test.go
+++ b/common/ratelimiter_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/tlsutils.go b/common/tlsutils.go
index f12147b4..b5bc320b 100644
--- a/common/tlsutils.go
+++ b/common/tlsutils.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/tlsutils_test.go b/common/tlsutils_test.go
index 66c412c8..99dc08c6 100644
--- a/common/tlsutils_test.go
+++ b/common/tlsutils_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/transfer.go b/common/transfer.go
index d7b46755..ed47f064 100644
--- a/common/transfer.go
+++ b/common/transfer.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/transfer_test.go b/common/transfer_test.go
index 5964b205..660379fc 100644
--- a/common/transfer_test.go
+++ b/common/transfer_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/transferschecker.go b/common/transferschecker.go
index 2e47eb61..e797272f 100644
--- a/common/transferschecker.go
+++ b/common/transferschecker.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/common/transferschecker_test.go b/common/transferschecker_test.go
index 0a9aae79..2b66c745 100644
--- a/common/transferschecker_test.go
+++ b/common/transferschecker_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package common
import (
diff --git a/config/config.go b/config/config.go
index 822f70f1..eeba56fe 100644
--- a/config/config.go
+++ b/config/config.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
// Package config manages the configuration
package config
diff --git a/config/config_linux.go b/config/config_linux.go
index 7b84f4c9..23ee2512 100644
--- a/config/config_linux.go
+++ b/config/config_linux.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build linux
// +build linux
diff --git a/config/config_nolinux.go b/config/config_nolinux.go
index 448b2114..0c8fa7cd 100644
--- a/config/config_nolinux.go
+++ b/config/config_nolinux.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build !linux
// +build !linux
diff --git a/config/config_test.go b/config/config_test.go
index 254532ec..5d6211e3 100644
--- a/config/config_test.go
+++ b/config/config_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package config_test
import (
diff --git a/dataprovider/actions.go b/dataprovider/actions.go
index 319cf0ad..3517812e 100644
--- a/dataprovider/actions.go
+++ b/dataprovider/actions.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package dataprovider
import (
diff --git a/dataprovider/admin.go b/dataprovider/admin.go
index c239486a..77b628e0 100644
--- a/dataprovider/admin.go
+++ b/dataprovider/admin.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package dataprovider
import (
diff --git a/dataprovider/apikey.go b/dataprovider/apikey.go
index 468dd479..a2d50a03 100644
--- a/dataprovider/apikey.go
+++ b/dataprovider/apikey.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package dataprovider
import (
diff --git a/dataprovider/bolt.go b/dataprovider/bolt.go
index 7a1cfa01..a63b110b 100644
--- a/dataprovider/bolt.go
+++ b/dataprovider/bolt.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build !nobolt
// +build !nobolt
diff --git a/dataprovider/bolt_disabled.go b/dataprovider/bolt_disabled.go
index 43cef589..cfbc80d0 100644
--- a/dataprovider/bolt_disabled.go
+++ b/dataprovider/bolt_disabled.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build nobolt
// +build nobolt
diff --git a/dataprovider/cachedpassword.go b/dataprovider/cachedpassword.go
index 049a3575..e05b534b 100644
--- a/dataprovider/cachedpassword.go
+++ b/dataprovider/cachedpassword.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package dataprovider
import (
diff --git a/dataprovider/cacheduser.go b/dataprovider/cacheduser.go
index eb084e86..d532cb11 100644
--- a/dataprovider/cacheduser.go
+++ b/dataprovider/cacheduser.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package dataprovider
import (
diff --git a/dataprovider/dataprovider.go b/dataprovider/dataprovider.go
index 3a6363b6..b2167996 100644
--- a/dataprovider/dataprovider.go
+++ b/dataprovider/dataprovider.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
// Package dataprovider provides data access.
// It abstracts different data providers and exposes a common API.
package dataprovider
diff --git a/dataprovider/eventrule.go b/dataprovider/eventrule.go
index 92c7ba86..a3e34d93 100644
--- a/dataprovider/eventrule.go
+++ b/dataprovider/eventrule.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package dataprovider
import (
diff --git a/dataprovider/eventruleutil.go b/dataprovider/eventruleutil.go
index 362d6a03..c838fe18 100644
--- a/dataprovider/eventruleutil.go
+++ b/dataprovider/eventruleutil.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package dataprovider
import (
diff --git a/dataprovider/group.go b/dataprovider/group.go
index 20223fb8..ee593a01 100644
--- a/dataprovider/group.go
+++ b/dataprovider/group.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package dataprovider
import (
diff --git a/dataprovider/memory.go b/dataprovider/memory.go
index 106f6817..2f4aa4bb 100644
--- a/dataprovider/memory.go
+++ b/dataprovider/memory.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package dataprovider
import (
diff --git a/dataprovider/mysql.go b/dataprovider/mysql.go
index cac48d25..97af5876 100644
--- a/dataprovider/mysql.go
+++ b/dataprovider/mysql.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build !nomysql
// +build !nomysql
diff --git a/dataprovider/mysql_disabled.go b/dataprovider/mysql_disabled.go
index 1de5ef95..ff4c34c8 100644
--- a/dataprovider/mysql_disabled.go
+++ b/dataprovider/mysql_disabled.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build nomysql
// +build nomysql
diff --git a/dataprovider/pgsql.go b/dataprovider/pgsql.go
index 9eb03b51..f56bf605 100644
--- a/dataprovider/pgsql.go
+++ b/dataprovider/pgsql.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build !nopgsql
// +build !nopgsql
diff --git a/dataprovider/pgsql_disabled.go b/dataprovider/pgsql_disabled.go
index ba5b26d6..573f19bb 100644
--- a/dataprovider/pgsql_disabled.go
+++ b/dataprovider/pgsql_disabled.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build nopgsql
// +build nopgsql
diff --git a/dataprovider/quota.go b/dataprovider/quota.go
index 569ff644..615891ff 100644
--- a/dataprovider/quota.go
+++ b/dataprovider/quota.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package dataprovider
import (
diff --git a/dataprovider/quotaupdater.go b/dataprovider/quotaupdater.go
index 9190e63d..954210bc 100644
--- a/dataprovider/quotaupdater.go
+++ b/dataprovider/quotaupdater.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package dataprovider
import (
diff --git a/dataprovider/scheduler.go b/dataprovider/scheduler.go
index ca7455d2..d34287c6 100644
--- a/dataprovider/scheduler.go
+++ b/dataprovider/scheduler.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package dataprovider
import (
diff --git a/dataprovider/session.go b/dataprovider/session.go
index 05da0984..22d78edd 100644
--- a/dataprovider/session.go
+++ b/dataprovider/session.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package dataprovider
import (
diff --git a/dataprovider/share.go b/dataprovider/share.go
index 8589cb42..e0699458 100644
--- a/dataprovider/share.go
+++ b/dataprovider/share.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package dataprovider
import (
diff --git a/dataprovider/sqlcommon.go b/dataprovider/sqlcommon.go
index b52f1106..5c6d0de2 100644
--- a/dataprovider/sqlcommon.go
+++ b/dataprovider/sqlcommon.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package dataprovider
import (
diff --git a/dataprovider/sqlite.go b/dataprovider/sqlite.go
index 1ec0b021..de12d3c0 100644
--- a/dataprovider/sqlite.go
+++ b/dataprovider/sqlite.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build !nosqlite
// +build !nosqlite
diff --git a/dataprovider/sqlite_disabled.go b/dataprovider/sqlite_disabled.go
index 559a74bd..9e78a09f 100644
--- a/dataprovider/sqlite_disabled.go
+++ b/dataprovider/sqlite_disabled.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build nosqlite
// +build nosqlite
diff --git a/dataprovider/sqlqueries.go b/dataprovider/sqlqueries.go
index b0ada083..a595142f 100644
--- a/dataprovider/sqlqueries.go
+++ b/dataprovider/sqlqueries.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package dataprovider
import (
diff --git a/dataprovider/user.go b/dataprovider/user.go
index f0b117a7..50ed8b75 100644
--- a/dataprovider/user.go
+++ b/dataprovider/user.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package dataprovider
import (
diff --git a/ftpd/cryptfs_test.go b/ftpd/cryptfs_test.go
index 105d6d3b..14591a6d 100644
--- a/ftpd/cryptfs_test.go
+++ b/ftpd/cryptfs_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package ftpd_test
import (
diff --git a/ftpd/ftpd.go b/ftpd/ftpd.go
index e133f0ed..77f5aadb 100644
--- a/ftpd/ftpd.go
+++ b/ftpd/ftpd.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
// Package ftpd implements the FTP protocol
package ftpd
diff --git a/ftpd/ftpd_test.go b/ftpd/ftpd_test.go
index 7bfe44d9..faa9f511 100644
--- a/ftpd/ftpd_test.go
+++ b/ftpd/ftpd_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package ftpd_test
import (
diff --git a/ftpd/handler.go b/ftpd/handler.go
index 91efd464..969e6b9a 100644
--- a/ftpd/handler.go
+++ b/ftpd/handler.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package ftpd
import (
diff --git a/ftpd/internal_test.go b/ftpd/internal_test.go
index 3a06d25e..0c18b7f5 100644
--- a/ftpd/internal_test.go
+++ b/ftpd/internal_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package ftpd
import (
diff --git a/ftpd/server.go b/ftpd/server.go
index 5e9716ae..9c2f839b 100644
--- a/ftpd/server.go
+++ b/ftpd/server.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package ftpd
import (
diff --git a/ftpd/transfer.go b/ftpd/transfer.go
index 5cd2e1d2..ab2737f3 100644
--- a/ftpd/transfer.go
+++ b/ftpd/transfer.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package ftpd
import (
diff --git a/go.mod b/go.mod
index 863558a3..b4df027f 100644
--- a/go.mod
+++ b/go.mod
@@ -66,7 +66,7 @@ require (
go.uber.org/automaxprocs v1.5.1
gocloud.dev v0.25.0
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d
- golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e
+ golang.org/x/net v0.0.0-20220708220712-1185a9018129
golang.org/x/oauth2 v0.0.0-20220630143837-2104d58473e0
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8
golang.org/x/time v0.0.0-20220609170525-579cf78fd858
@@ -168,5 +168,5 @@ replace (
github.com/jlaffaye/ftp => github.com/drakkan/ftp v0.0.0-20201114075148-9b9adce499a9
github.com/pkg/sftp => github.com/drakkan/sftp v0.0.0-20220716075551-51a5aa4e044d
golang.org/x/crypto => github.com/drakkan/crypto v0.0.0-20220624105932-71c5dfcef1e8
- golang.org/x/net => github.com/drakkan/net v0.0.0-20220628171916-78de6a2a21b0
+ golang.org/x/net => github.com/drakkan/net v0.0.0-20220717180040-c9045f6f4c55
)
diff --git a/go.sum b/go.sum
index 3b61b6de..a04a99de 100644
--- a/go.sum
+++ b/go.sum
@@ -262,8 +262,8 @@ github.com/drakkan/crypto v0.0.0-20220624105932-71c5dfcef1e8 h1:feWyZw3d2AjzdhIA
github.com/drakkan/crypto v0.0.0-20220624105932-71c5dfcef1e8/go.mod h1:SiM6ypd8Xu1xldObYtbDztuUU7xUzMnUULfphXFZmro=
github.com/drakkan/ftp v0.0.0-20201114075148-9b9adce499a9 h1:LPH1dEblAOO/LoG7yHPMtBLXhQmjaga91/DDjWk9jWA=
github.com/drakkan/ftp v0.0.0-20201114075148-9b9adce499a9/go.mod h1:2lmrmq866uF2tnje75wQHzmPXhmSWUt7Gyx2vgK1RCU=
-github.com/drakkan/net v0.0.0-20220628171916-78de6a2a21b0 h1:VL3ucjcGkcuAEflNvFbNYHOTdAqgYOMRJBBRy7nQ/E4=
-github.com/drakkan/net v0.0.0-20220628171916-78de6a2a21b0/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
+github.com/drakkan/net v0.0.0-20220717180040-c9045f6f4c55 h1:Eu6VxyVnBwI7T0t6OqZvAb5Y8HOQNNtT0iGcmWqw1hg=
+github.com/drakkan/net v0.0.0-20220717180040-c9045f6f4c55/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
github.com/drakkan/sftp v0.0.0-20220716075551-51a5aa4e044d h1:kNk/KRhszPJASp7WvjagNW254aKK643Lu8/fr4/ukiM=
github.com/drakkan/sftp v0.0.0-20220716075551-51a5aa4e044d/go.mod h1:wHDZ0IZX6JcBYRK1TH9bcVq8G7TLpVHYIGJRFnmPfxg=
github.com/eikenb/pipeat v0.0.0-20210730190139-06b3e6902001 h1:/ZshrfQzayqRSBDodmp3rhNCHJCff+utvgBuWRbiqu4=
diff --git a/httpclient/httpclient.go b/httpclient/httpclient.go
index f4c60173..8618693e 100644
--- a/httpclient/httpclient.go
+++ b/httpclient/httpclient.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpclient
import (
diff --git a/httpd/api_admin.go b/httpd/api_admin.go
index 1df4beaf..d4768212 100644
--- a/httpd/api_admin.go
+++ b/httpd/api_admin.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/api_defender.go b/httpd/api_defender.go
index 83fe7e67..7667a271 100644
--- a/httpd/api_defender.go
+++ b/httpd/api_defender.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/api_eventrule.go b/httpd/api_eventrule.go
index 94c0f9cf..8c5beedc 100644
--- a/httpd/api_eventrule.go
+++ b/httpd/api_eventrule.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/api_events.go b/httpd/api_events.go
index 0320b041..851393ea 100644
--- a/httpd/api_events.go
+++ b/httpd/api_events.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/api_folder.go b/httpd/api_folder.go
index 70ddb1bc..b8ed4589 100644
--- a/httpd/api_folder.go
+++ b/httpd/api_folder.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/api_group.go b/httpd/api_group.go
index 0e8d0938..4ac78db2 100644
--- a/httpd/api_group.go
+++ b/httpd/api_group.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/api_http_user.go b/httpd/api_http_user.go
index 4b061ec5..2d1a4872 100644
--- a/httpd/api_http_user.go
+++ b/httpd/api_http_user.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/api_keys.go b/httpd/api_keys.go
index cead8ac5..9c6a9f5f 100644
--- a/httpd/api_keys.go
+++ b/httpd/api_keys.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/api_maintenance.go b/httpd/api_maintenance.go
index f78de5a1..94ae31e7 100644
--- a/httpd/api_maintenance.go
+++ b/httpd/api_maintenance.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/api_metadata.go b/httpd/api_metadata.go
index 92fa6173..5ddbc979 100644
--- a/httpd/api_metadata.go
+++ b/httpd/api_metadata.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/api_mfa.go b/httpd/api_mfa.go
index ac749991..4ac1fb60 100644
--- a/httpd/api_mfa.go
+++ b/httpd/api_mfa.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/api_quota.go b/httpd/api_quota.go
index 6c34989e..e8e9723e 100644
--- a/httpd/api_quota.go
+++ b/httpd/api_quota.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/api_retention.go b/httpd/api_retention.go
index 729b2361..78f1ca32 100644
--- a/httpd/api_retention.go
+++ b/httpd/api_retention.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/api_shares.go b/httpd/api_shares.go
index 3b8ff27b..810f4aa5 100644
--- a/httpd/api_shares.go
+++ b/httpd/api_shares.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/api_user.go b/httpd/api_user.go
index 7b3bbf41..79a1bacf 100644
--- a/httpd/api_user.go
+++ b/httpd/api_user.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/api_utils.go b/httpd/api_utils.go
index 2537f3df..e7945431 100644
--- a/httpd/api_utils.go
+++ b/httpd/api_utils.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/auth_utils.go b/httpd/auth_utils.go
index 1636efc4..e1fcfce6 100644
--- a/httpd/auth_utils.go
+++ b/httpd/auth_utils.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/file.go b/httpd/file.go
index 8178016b..1aeb8d69 100644
--- a/httpd/file.go
+++ b/httpd/file.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/flash.go b/httpd/flash.go
index d17e6705..0ce79b02 100644
--- a/httpd/flash.go
+++ b/httpd/flash.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/flash_test.go b/httpd/flash_test.go
index 81297564..375dee93 100644
--- a/httpd/flash_test.go
+++ b/httpd/flash_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/handler.go b/httpd/handler.go
index 1ada4a2e..1ed5a498 100644
--- a/httpd/handler.go
+++ b/httpd/handler.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/httpd.go b/httpd/httpd.go
index 0287abd5..1ec6b4bf 100644
--- a/httpd/httpd.go
+++ b/httpd/httpd.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
// Package httpd implements REST API and Web interface for SFTPGo.
// The OpenAPI 3 schema for the exposed API can be found inside the source tree:
// https://github.com/drakkan/sftpgo/blob/main/openapi/openapi.yaml
diff --git a/httpd/httpd_test.go b/httpd/httpd_test.go
index 46278164..eac4b6f0 100644
--- a/httpd/httpd_test.go
+++ b/httpd/httpd_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd_test
import (
diff --git a/httpd/internal_test.go b/httpd/internal_test.go
index 4a1d0e39..da7b9c59 100644
--- a/httpd/internal_test.go
+++ b/httpd/internal_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/middleware.go b/httpd/middleware.go
index f74b92aa..d920ee7b 100644
--- a/httpd/middleware.go
+++ b/httpd/middleware.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/oidc.go b/httpd/oidc.go
index 6bf506b7..b40576d9 100644
--- a/httpd/oidc.go
+++ b/httpd/oidc.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/oidc_test.go b/httpd/oidc_test.go
index b1787fd0..337e750b 100644
--- a/httpd/oidc_test.go
+++ b/httpd/oidc_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/oidcmanager.go b/httpd/oidcmanager.go
index 7148d6f3..0b71dd33 100644
--- a/httpd/oidcmanager.go
+++ b/httpd/oidcmanager.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/resetcode.go b/httpd/resetcode.go
index d91edaa1..271c1731 100644
--- a/httpd/resetcode.go
+++ b/httpd/resetcode.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/server.go b/httpd/server.go
index 228d3ad9..1c483e5b 100644
--- a/httpd/server.go
+++ b/httpd/server.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/web.go b/httpd/web.go
index 67785ddf..9dd9a53c 100644
--- a/httpd/web.go
+++ b/httpd/web.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/webadmin.go b/httpd/webadmin.go
index 58810165..b9f2eec7 100644
--- a/httpd/webadmin.go
+++ b/httpd/webadmin.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpd/webclient.go b/httpd/webclient.go
index dd5f6b14..d2e9095c 100644
--- a/httpd/webclient.go
+++ b/httpd/webclient.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpd
import (
diff --git a/httpdtest/httpdtest.go b/httpdtest/httpdtest.go
index 2725059b..5ad98c59 100644
--- a/httpdtest/httpdtest.go
+++ b/httpdtest/httpdtest.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
// Package httpdtest provides utilities for testing the exposed REST API.
package httpdtest
diff --git a/httpdtest/httpfsimpl.go b/httpdtest/httpfsimpl.go
index 2e697a71..14f02a33 100644
--- a/httpdtest/httpfsimpl.go
+++ b/httpdtest/httpfsimpl.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package httpdtest
import (
diff --git a/kms/basesecret.go b/kms/basesecret.go
index 5608f7ec..f57f63c4 100644
--- a/kms/basesecret.go
+++ b/kms/basesecret.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package kms
import (
diff --git a/kms/builtin.go b/kms/builtin.go
index 4a2eaafd..2cdd2f6b 100644
--- a/kms/builtin.go
+++ b/kms/builtin.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package kms
import (
diff --git a/kms/kms.go b/kms/kms.go
index 9cfd123f..2a9b85c6 100644
--- a/kms/kms.go
+++ b/kms/kms.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
// Package kms provides Key Management Services support
package kms
diff --git a/kms/local.go b/kms/local.go
index 85cf2f09..b714776e 100644
--- a/kms/local.go
+++ b/kms/local.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package kms
import (
diff --git a/logger/hclog.go b/logger/hclog.go
index ef615edb..e52a8c43 100644
--- a/logger/hclog.go
+++ b/logger/hclog.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package logger
import (
diff --git a/logger/journald.go b/logger/journald.go
index e7319b3e..32a04085 100644
--- a/logger/journald.go
+++ b/logger/journald.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build linux
// +build linux
diff --git a/logger/journald_nolinux.go b/logger/journald_nolinux.go
index d421798c..d8a68d84 100644
--- a/logger/journald_nolinux.go
+++ b/logger/journald_nolinux.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build !linux
// +build !linux
diff --git a/logger/lego.go b/logger/lego.go
index ac1230ec..748ecb0d 100644
--- a/logger/lego.go
+++ b/logger/lego.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package logger
import "fmt"
diff --git a/logger/logger.go b/logger/logger.go
index 7f19e0c0..6344e03a 100644
--- a/logger/logger.go
+++ b/logger/logger.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
// Package logger provides logging capabilities.
// It is a wrapper around zerolog for logging and lumberjack for log rotation.
// Logs are written to the specified log file.
diff --git a/logger/request_logger.go b/logger/request_logger.go
index c78788f1..0cf50399 100644
--- a/logger/request_logger.go
+++ b/logger/request_logger.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package logger
import (
diff --git a/logger/sync_wrapper.go b/logger/sync_wrapper.go
index c3737604..0151afb0 100644
--- a/logger/sync_wrapper.go
+++ b/logger/sync_wrapper.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package logger
import (
diff --git a/main.go b/main.go
index 4bdac6e5..db686e2b 100644
--- a/main.go
+++ b/main.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
// Fully featured and highly configurable SFTP server with optional
// FTP/S and WebDAV support.
// For more details about features, installation, configuration and usage
diff --git a/metric/metric.go b/metric/metric.go
index 936c4d66..221699e0 100644
--- a/metric/metric.go
+++ b/metric/metric.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build !nometrics
// +build !nometrics
diff --git a/metric/metric_disabled.go b/metric/metric_disabled.go
index 678e67b3..f139e956 100644
--- a/metric/metric_disabled.go
+++ b/metric/metric_disabled.go
@@ -17,7 +17,7 @@ func init() {
func AddMetricsEndpoint(metricsPath string, handler chi.Router) {}
// TransferCompleted updates metrics after an upload or a download
-func TransferCompleted(bytesSent, bytesReceived int64, transferKind int, err error) {}
+func TransferCompleted(bytesSent, bytesReceived int64, transferKind int, err error, isSFTPFs bool) {}
// S3TransferCompleted updates metrics after an S3 upload or a download
func S3TransferCompleted(bytes int64, transferKind int, err error) {}
@@ -49,6 +49,9 @@ func GCSDeleteObjectCompleted(err error) {}
// GCSHeadBucketCompleted updates metrics after a GCS head bucket request terminates
func GCSHeadBucketCompleted(err error) {}
+// HTTPFsTransferCompleted updates metrics after an HTTPFs upload or a download
+func HTTPFsTransferCompleted(bytes int64, transferKind int, err error) {}
+
// SSHCommandCompleted update metrics after an SSH command terminates
func SSHCommandCompleted(err error) {}
diff --git a/mfa/mfa.go b/mfa/mfa.go
index 0bd89506..4e82d9e4 100644
--- a/mfa/mfa.go
+++ b/mfa/mfa.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
// Package mfa provides supports for Multi-Factor authentication modules
package mfa
diff --git a/mfa/mfa_test.go b/mfa/mfa_test.go
index 66b66cd1..78507269 100644
--- a/mfa/mfa_test.go
+++ b/mfa/mfa_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package mfa
import (
diff --git a/mfa/totp.go b/mfa/totp.go
index ff33a47a..62b93254 100644
--- a/mfa/totp.go
+++ b/mfa/totp.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package mfa
import (
diff --git a/openapi/httpfs.yaml b/openapi/httpfs.yaml
index 8626a712..f2e34ee9 100644
--- a/openapi/httpfs.yaml
+++ b/openapi/httpfs.yaml
@@ -7,6 +7,9 @@ info:
SFTPGo can use custom storage backend implementations compliant with the API defined here.
HTTPFs is a work in progress and makes no API stability promises.
version: 0.1.0
+ license:
+ name: AGPL-3.0-only
+ url: 'https://www.gnu.org/licenses/agpl-3.0.en.html'
servers:
- url: /v1
security:
diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml
index 3006f9e6..65d71cc6 100644
--- a/openapi/openapi.yaml
+++ b/openapi/openapi.yaml
@@ -32,7 +32,7 @@ info:
name: API support
url: 'https://github.com/drakkan/sftpgo'
license:
- name: AGPLv3
+ name: AGPL-3.0-only
url: 'https://www.gnu.org/licenses/agpl-3.0.en.html'
servers:
- url: /api/v2
diff --git a/plugin/auth.go b/plugin/auth.go
index 53935bd3..f0e676c9 100644
--- a/plugin/auth.go
+++ b/plugin/auth.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package plugin
import (
diff --git a/plugin/ipfilter.go b/plugin/ipfilter.go
index 8524059c..1def39c3 100644
--- a/plugin/ipfilter.go
+++ b/plugin/ipfilter.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package plugin
import (
diff --git a/plugin/kms.go b/plugin/kms.go
index 5fe96a6b..cb3073c5 100644
--- a/plugin/kms.go
+++ b/plugin/kms.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package plugin
import (
diff --git a/plugin/metadata.go b/plugin/metadata.go
index 65c27f2d..74f164ed 100644
--- a/plugin/metadata.go
+++ b/plugin/metadata.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package plugin
import (
diff --git a/plugin/notifier.go b/plugin/notifier.go
index cd23d2fa..e8760901 100644
--- a/plugin/notifier.go
+++ b/plugin/notifier.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package plugin
import (
diff --git a/plugin/plugin.go b/plugin/plugin.go
index 3acd226a..9741b25a 100644
--- a/plugin/plugin.go
+++ b/plugin/plugin.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
// Package plugin provides support for the SFTPGo plugin system
package plugin
diff --git a/plugin/searcher.go b/plugin/searcher.go
index fa820ec2..e4e1d26e 100644
--- a/plugin/searcher.go
+++ b/plugin/searcher.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package plugin
import (
diff --git a/plugin/util.go b/plugin/util.go
index ba96270a..e3b692e1 100644
--- a/plugin/util.go
+++ b/plugin/util.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package plugin
import (
diff --git a/service/awscontainer.go b/service/awscontainer.go
index 240404cd..3047a472 100644
--- a/service/awscontainer.go
+++ b/service/awscontainer.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build awscontainer
// +build awscontainer
diff --git a/service/awscontainer_disabled.go b/service/awscontainer_disabled.go
index 0bd48d34..d57d362a 100644
--- a/service/awscontainer_disabled.go
+++ b/service/awscontainer_disabled.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build !awscontainer
// +build !awscontainer
diff --git a/service/service.go b/service/service.go
index 6bc4a733..b0696088 100644
--- a/service/service.go
+++ b/service/service.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
// Package service allows to start and stop the SFTPGo service
package service
diff --git a/service/service_portable.go b/service/service_portable.go
index 0391b722..411782c1 100644
--- a/service/service_portable.go
+++ b/service/service_portable.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build !noportable
// +build !noportable
diff --git a/service/service_windows.go b/service/service_windows.go
index 0d00be73..3f706954 100644
--- a/service/service_windows.go
+++ b/service/service_windows.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package service
import (
diff --git a/service/signals_unix.go b/service/signals_unix.go
index 22a24480..756f3308 100644
--- a/service/signals_unix.go
+++ b/service/signals_unix.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build !windows
// +build !windows
diff --git a/service/signals_windows.go b/service/signals_windows.go
index 23b7cbdf..caabf1eb 100644
--- a/service/signals_windows.go
+++ b/service/signals_windows.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package service
import (
diff --git a/sftpd/cmd_unix.go b/sftpd/cmd_unix.go
index 5a02e05c..475eaa2a 100644
--- a/sftpd/cmd_unix.go
+++ b/sftpd/cmd_unix.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build !windows
// +build !windows
diff --git a/sftpd/cmd_windows.go b/sftpd/cmd_windows.go
index c9250db2..9385d589 100644
--- a/sftpd/cmd_windows.go
+++ b/sftpd/cmd_windows.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package sftpd
import (
diff --git a/sftpd/cryptfs_test.go b/sftpd/cryptfs_test.go
index 8c14d1c1..e0238fc0 100644
--- a/sftpd/cryptfs_test.go
+++ b/sftpd/cryptfs_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package sftpd_test
import (
diff --git a/sftpd/handler.go b/sftpd/handler.go
index 610ea4ea..6cdc3dc9 100644
--- a/sftpd/handler.go
+++ b/sftpd/handler.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package sftpd
import (
diff --git a/sftpd/httpfs_test.go b/sftpd/httpfs_test.go
index 8e85044c..5c41698b 100644
--- a/sftpd/httpfs_test.go
+++ b/sftpd/httpfs_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package sftpd_test
import (
diff --git a/sftpd/internal_test.go b/sftpd/internal_test.go
index f5680bf7..3bdb6b6c 100644
--- a/sftpd/internal_test.go
+++ b/sftpd/internal_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package sftpd
import (
diff --git a/sftpd/internal_unix_test.go b/sftpd/internal_unix_test.go
index 2fbcb20e..4ef26419 100644
--- a/sftpd/internal_unix_test.go
+++ b/sftpd/internal_unix_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
//go:build !windows
// +build !windows
diff --git a/sftpd/lister.go b/sftpd/lister.go
index 5ec491d6..7690bd61 100644
--- a/sftpd/lister.go
+++ b/sftpd/lister.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package sftpd
import (
diff --git a/sftpd/middleware.go b/sftpd/middleware.go
index 20cab5d1..6b54e0b6 100644
--- a/sftpd/middleware.go
+++ b/sftpd/middleware.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package sftpd
import (
diff --git a/sftpd/middleware_test.go b/sftpd/middleware_test.go
index e285beba..e8980568 100644
--- a/sftpd/middleware_test.go
+++ b/sftpd/middleware_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package sftpd
import (
diff --git a/sftpd/scp.go b/sftpd/scp.go
index 3e733233..c33b8a7a 100644
--- a/sftpd/scp.go
+++ b/sftpd/scp.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package sftpd
import (
diff --git a/sftpd/server.go b/sftpd/server.go
index c2f0f80f..86dde346 100644
--- a/sftpd/server.go
+++ b/sftpd/server.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package sftpd
import (
diff --git a/sftpd/sftpd.go b/sftpd/sftpd.go
index a1a43450..157a4b44 100644
--- a/sftpd/sftpd.go
+++ b/sftpd/sftpd.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
// Package sftpd implements the SSH File Transfer Protocol as described in https://tools.ietf.org/html/draft-ietf-secsh-filexfer-02.
// It uses pkg/sftp library:
// https://github.com/pkg/sftp
diff --git a/sftpd/sftpd_test.go b/sftpd/sftpd_test.go
index 9e7ea0fb..f01d6fa9 100644
--- a/sftpd/sftpd_test.go
+++ b/sftpd/sftpd_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package sftpd_test
import (
diff --git a/sftpd/ssh_cmd.go b/sftpd/ssh_cmd.go
index 467587f9..5ded511a 100644
--- a/sftpd/ssh_cmd.go
+++ b/sftpd/ssh_cmd.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package sftpd
import (
diff --git a/sftpd/subsystem.go b/sftpd/subsystem.go
index 744c9301..e76e5e03 100644
--- a/sftpd/subsystem.go
+++ b/sftpd/subsystem.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package sftpd
import (
diff --git a/sftpd/transfer.go b/sftpd/transfer.go
index cd381adb..cef4d5bd 100644
--- a/sftpd/transfer.go
+++ b/sftpd/transfer.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package sftpd
import (
diff --git a/smtp/smtp.go b/smtp/smtp.go
index 0b90128c..9593dbe7 100644
--- a/smtp/smtp.go
+++ b/smtp/smtp.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
// Package smtp provides supports for sending emails
package smtp
diff --git a/telemetry/router.go b/telemetry/router.go
index b5835ae0..d1e49440 100644
--- a/telemetry/router.go
+++ b/telemetry/router.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package telemetry
import (
diff --git a/telemetry/telemetry.go b/telemetry/telemetry.go
index dec93ec4..fd5cda2d 100644
--- a/telemetry/telemetry.go
+++ b/telemetry/telemetry.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
// Package telemetry provides telemetry information for SFTPGo, such as:
// - health information (for health checks)
// - metrics
diff --git a/telemetry/telemetry_test.go b/telemetry/telemetry_test.go
index cda542b1..3fa71c40 100644
--- a/telemetry/telemetry_test.go
+++ b/telemetry/telemetry_test.go
@@ -1,3 +1,17 @@
+// Copyright (C) 2019-2022 Nicola Murino
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published
+// by the Free Software Foundation, version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package telemetry
import (
diff --git a/templates/common/forgot-password.html b/templates/common/forgot-password.html
index 740dcb10..e41cdd0e 100644
--- a/templates/common/forgot-password.html
+++ b/templates/common/forgot-password.html
@@ -1,3 +1,18 @@
+
diff --git a/templates/common/reset-password.html b/templates/common/reset-password.html
index f08f4c75..dfc2698c 100644
--- a/templates/common/reset-password.html
+++ b/templates/common/reset-password.html
@@ -1,3 +1,18 @@
+
diff --git a/templates/email/reset-password.html b/templates/email/reset-password.html
index 79a458fc..da8caa62 100644
--- a/templates/email/reset-password.html
+++ b/templates/email/reset-password.html
@@ -1,3 +1,18 @@
+
Hello there!
Your SFTPGo email verification code is "{{.Code}}", this code is valid for 10 minutes.
diff --git a/templates/email/retention-check-report.html b/templates/email/retention-check-report.html
index d4bdde2d..a0aa5b68 100644
--- a/templates/email/retention-check-report.html
+++ b/templates/email/retention-check-report.html
@@ -1,3 +1,18 @@
+
Retention check report for user "{{.Username}}"
Status: {{.Status}}
diff --git a/templates/webadmin/admin.html b/templates/webadmin/admin.html
index 71d63388..dc4c992a 100644
--- a/templates/webadmin/admin.html
+++ b/templates/webadmin/admin.html
@@ -1,3 +1,18 @@
+
{{template "base" .}}
{{define "title"}}{{.Title}}{{end}}
diff --git a/templates/webadmin/admins.html b/templates/webadmin/admins.html
index 7e53ba0f..bcc9faa4 100644
--- a/templates/webadmin/admins.html
+++ b/templates/webadmin/admins.html
@@ -1,3 +1,18 @@
+
{{template "base" .}}
{{define "title"}}{{.Title}}{{end}}
diff --git a/templates/webadmin/adminsetup.html b/templates/webadmin/adminsetup.html
index a143d5aa..d88ddd41 100644
--- a/templates/webadmin/adminsetup.html
+++ b/templates/webadmin/adminsetup.html
@@ -1,3 +1,18 @@
+
diff --git a/templates/webadmin/base.html b/templates/webadmin/base.html
index ae95278b..59319913 100644
--- a/templates/webadmin/base.html
+++ b/templates/webadmin/base.html
@@ -1,3 +1,18 @@
+
{{define "base"}}
diff --git a/templates/webadmin/baselogin.html b/templates/webadmin/baselogin.html
index 46bebf28..8c766ccc 100644
--- a/templates/webadmin/baselogin.html
+++ b/templates/webadmin/baselogin.html
@@ -1,3 +1,18 @@
+
{{define "baselogin"}}
diff --git a/templates/webadmin/changepassword.html b/templates/webadmin/changepassword.html
index fe87f53a..930163b3 100644
--- a/templates/webadmin/changepassword.html
+++ b/templates/webadmin/changepassword.html
@@ -1,3 +1,18 @@
+
{{template "base" .}}
{{define "title"}}{{.Title}}{{end}}
diff --git a/templates/webadmin/connections.html b/templates/webadmin/connections.html
index 0b1f0b99..9775b128 100644
--- a/templates/webadmin/connections.html
+++ b/templates/webadmin/connections.html
@@ -1,3 +1,18 @@
+
{{template "base" .}}
{{define "title"}}{{.Title}}{{end}}
diff --git a/templates/webadmin/defender.html b/templates/webadmin/defender.html
index dae02e3f..a7e4ccb7 100644
--- a/templates/webadmin/defender.html
+++ b/templates/webadmin/defender.html
@@ -1,3 +1,18 @@
+
{{template "base" .}}
{{define "title"}}{{.Title}}{{end}}
diff --git a/templates/webadmin/eventaction.html b/templates/webadmin/eventaction.html
index 2bd9989e..560a1934 100644
--- a/templates/webadmin/eventaction.html
+++ b/templates/webadmin/eventaction.html
@@ -1,3 +1,18 @@
+
{{template "base" .}}
{{define "title"}}{{.Title}}{{end}}
diff --git a/templates/webadmin/eventactions.html b/templates/webadmin/eventactions.html
index 0b17148b..7c0f7640 100644
--- a/templates/webadmin/eventactions.html
+++ b/templates/webadmin/eventactions.html
@@ -1,3 +1,18 @@
+
{{template "base" .}}
{{define "title"}}{{.Title}}{{end}}
diff --git a/templates/webadmin/eventrule.html b/templates/webadmin/eventrule.html
index 7ff80ed2..8a614c36 100644
--- a/templates/webadmin/eventrule.html
+++ b/templates/webadmin/eventrule.html
@@ -1,3 +1,18 @@
+
{{template "base" .}}
{{define "title"}}{{.Title}}{{end}}
diff --git a/templates/webadmin/eventrules.html b/templates/webadmin/eventrules.html
index 5496c60d..586428c9 100644
--- a/templates/webadmin/eventrules.html
+++ b/templates/webadmin/eventrules.html
@@ -1,3 +1,18 @@
+
{{template "base" .}}
{{define "title"}}{{.Title}}{{end}}
diff --git a/templates/webadmin/folder.html b/templates/webadmin/folder.html
index 9707b1bf..f77e978b 100644
--- a/templates/webadmin/folder.html
+++ b/templates/webadmin/folder.html
@@ -1,3 +1,18 @@
+
{{template "base" .}}
{{define "title"}}{{.Title}}{{end}}
diff --git a/templates/webadmin/folders.html b/templates/webadmin/folders.html
index c6a7d63a..11ff3bc4 100644
--- a/templates/webadmin/folders.html
+++ b/templates/webadmin/folders.html
@@ -1,3 +1,18 @@
+
{{template "base" .}}
{{define "title"}}{{.Title}}{{end}}
diff --git a/templates/webadmin/fsconfig.html b/templates/webadmin/fsconfig.html
index 6ec66f48..eefa3ab1 100644
--- a/templates/webadmin/fsconfig.html
+++ b/templates/webadmin/fsconfig.html
@@ -1,3 +1,18 @@
+
{{define "fshtml"}}